public void ArrayEmulatorSort(int[] a, int[] b) { var arr = new ArrayEmulator("for_test.txt"); for (int i = 0; i < a.Length; i++) { arr.Add(a[i]); } Assert.AreEqual(a.Length, arr.Length); Console.WriteLine("in Array in Emulator"); for (int i = 0; i < a.Length; i++) { Console.WriteLine($"{a[i],8} {arr[i],-8}"); Assert.AreEqual(a[i], arr[i]); } QuickSort_OnlyFile.Sort.QuickSort(arr, 0, arr.Length - 1); Console.WriteLine("After Sort\nin Array in Emulator"); for (int i = 0; i < a.Length; i++) { Console.WriteLine($"{b[i],8} {arr[i],-8}"); Assert.AreEqual(b[i], arr[i]); } arr.Dispose(); File.Delete("for_test.txt"); }
static string TestArrayFile(ArrayEmulator arr) { var time = Stopwatch.StartNew(); QuickSort_OnlyFile.Sort.QuickSort(arr, 0, arr.Length - 1); time.Stop(); return(time.Elapsed.Minutes + "." + time.Elapsed.Seconds + "." + time.Elapsed.Milliseconds); }
public static void QuickSort(ArrayEmulator arr, int start, int end) { if (start < end) { int i = Partition(arr, start, end); QuickSort(arr, start, i - 1); QuickSort(arr, i + 1, end); } }
static ArrayEmulator GetRandomArrayFile(int length) { var arr = new ArrayEmulator("testarray.dat", 4, length); var random = new Random(); for (int i = 0; i < arr.Length; i++) { arr[i] = random.Next(int.MinValue, int.MaxValue); } return(arr); }
private static int Partition(ArrayEmulator arr, int start, int end) { int temp; int p = arr[end]; int i = start - 1; for (int j = start; j <= end - 1; j++) { if (arr[j] <= p) { i++; temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } temp = arr[i + 1]; arr[i + 1] = arr[end]; arr[end] = temp; return(i + 1); }