static void Main() { int[] arrayToInsertionSort = Utils.CreateRandomArray(10, 1000); int[] arrayToQuickSort = Utils.CreateRandomArray(10, 1000); int[] arrayToMergeSort = Utils.CreateRandomArray(10, 1000); Console.WriteLine("--------------------------------------------------"); Console.WriteLine("Неотсортированный массив для сотрировки вставками:"); Utils.Display(arrayToInsertionSort); Console.WriteLine("Неотсортированный массив для быстрой сортировки :"); Utils.Display(arrayToQuickSort); Console.WriteLine("Неотсортированный массив для сортировки слиянием:"); Utils.Display(arrayToMergeSort); Console.WriteLine("-------------------------------------------------"); Console.WriteLine("\n"); InsertionSort.DoInsertionSort(arrayToInsertionSort, 0, arrayToInsertionSort.Length - 1); QuickSort.DoQuickSort(arrayToQuickSort, 0, arrayToQuickSort.Length - 1); MergeSort.DoMergeSort(arrayToMergeSort, 0, arrayToMergeSort.Length - 1); Console.WriteLine("-----------------------------------------------"); Console.WriteLine("Отсортированный массив для сотрировки вставками:"); Utils.Display(arrayToInsertionSort); Console.WriteLine("Отсортированный массив для быстрой сортировки :"); Utils.Display(arrayToQuickSort); Console.WriteLine("Отсортированный массив для сортировки слиянием:"); Utils.Display(arrayToMergeSort); Console.WriteLine("-----------------------------------------------"); Console.WriteLine("\n"); SortMethod sortMethod = QuickSort.DoQuickSort; double timeForQuick = Utils.CountTimeForManySorts(100, 100000, 1000000, sortMethod); Console.WriteLine("Для быстрой сортировки:"); Console.WriteLine($"Время: {timeForQuick}\n"); sortMethod = MergeSort.DoMergeSort; double timeForMerge = Utils.CountTimeForManySorts(100, 100000, 1000000, sortMethod); Console.WriteLine("Для сортировки слиянием:"); Console.WriteLine($"Время: {timeForMerge}\n"); Console.WriteLine("-----------------------------------------------"); Console.WriteLine("Для гибридной быстрой сортировки:"); SortHybridMethod sortHybridMethod = QuickSort.DoHybridQuickSort; (int optimalQuickSortK, double timeForQuickSortK) = Utils.FindOptimalElement(100, 100000, 1000000, sortHybridMethod); Console.WriteLine($"Оптимальное k: {optimalQuickSortK}\nВремя: {timeForQuickSortK}\n"); Console.WriteLine("-----------------------------------------------"); Console.WriteLine("Для гибридной сортировки слиянием:"); sortHybridMethod = MergeSort.DoHybridMergeSort; (int optimalMergeSortK, double timeForMergeSortK) = Utils.FindOptimalElement(100, 100000, 1000000, sortHybridMethod); Console.WriteLine($"Оптимальное k: {optimalMergeSortK}\nВремя: {timeForMergeSortK}\n"); }
public void TestSort(int[] input, int[] expected) { MergeSort sorter = new MergeSort(); //Act sorter.DoMergeSort(input); //Assert for (int i = 0; i < input.Length; i++) { Assert.AreEqual(expected[i], input[i]); } }