/// <summary> /// Подсчитать время. затраченное на кол-во операций. /// </summary> /// <param name="sorting">Алгоритм сортировки.</param> /// <param name="data">Данные для сортировки.</param> /// <param name="operationCount">Кол-во операций для измерения времени.</param> /// <returns></returns> private static long getRunMilliseconds(ISorting sorting, int []data, int operationCount) { SortCore sortCore = new SortCore(sorting, null); System.Diagnostics.Stopwatch swatch = new System.Diagnostics.Stopwatch(); swatch.Start(); for (int i = 0; i <= operationCount; i++) { sortCore.process(data); } swatch.Stop(); return swatch.ElapsedMilliseconds; }
/// <summary> /// ТОчка входа в программу. /// </summary> /// <param name="args"></param> static void Main(string[] args) { /// Кол-во операций для измерения времени. const int operationCount = 10000000; /// Создание класса для вывода на консоль. var view = new ConsoleView(); /// Создание логики сортировки с алгоритмом гномьей сортировки и выводом на консоль. var sortCore = new SortCore(new GnomeSorting(), view); /// Взять массив случайных значений. int[] data = getRandomedArray(); /// Произвести сортировку sortCore.process(data); /// Вывод времени, затраченного на определенное кол-во раз проходов определенного алгоритма. view.setText("\n"); view.setText("Время, затраченное на выполнение " + System.Convert.ToString(operationCount) + " операций методом:"); view.setText("Гномьей сортировки:"); view.setText(System.Convert.ToString(getRunMilliseconds(new GnomeSorting(), data, operationCount) + "мс")); view.setText("Пузырьковой:"); view.setText(System.Convert.ToString(getRunMilliseconds(new BubbleSorting(), data, operationCount) + "мс")); view.setText("Вставками:"); view.setText(System.Convert.ToString(getRunMilliseconds(new InsertionSorting(), data, operationCount) + "мс")); view.setPause(); }