Определение времени выполнения алгоритма быстрой сортировки - C#
Формулировка задачи:
Доброго времени суток всем, прошу помощи, не могу понять в чем проблема и как ее решить.
Нужно определить время выполнения алгоритма, оно определяется но очень много раз. Как это можно исправить?
вот результат:
Листинг программы
- namespace Быстрая_сортировка
- {
- class QuickSorting
- {
- public static void sorting(int[] arr, long first, long last)
- {
- var stopwatch = System.Diagnostics.Stopwatch.StartNew();
- int p = arr[(last - first) / 2 + first];
- int temp;
- long i = first, j = last;
- while (i <= j)
- {
- while (arr[i] < p) i++;
- while (arr[j] > p) j--;
- if (i <= j)
- {
- temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- i++; j--;
- }
- }
- if (j > first)
- sorting(arr, first, j);
- if (i < last)
- sorting(arr, i, last);
- stopwatch.Stop();
- Console.WriteLine("Время выполнения алгоритма:" +stopwatch.Elapsed);
- }
- }
- class Test
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Введите размерность");
- int N = Convert.ToInt32(Console.ReadLine());
- int[] arr = new int[N];
- //заполняем массив случайными числами
- Random rd = new Random();
- for (int i = 0; i < arr.Length; ++i)
- {
- arr[i] = rd.Next(1, 101);
- }
- Console.WriteLine("Массив перед сортировкой:");
- foreach (int x in arr)
- {
- Console.Write(x + " ");
- }
- //сортировка
- Console.WriteLine();
- QuickSorting.sorting(arr, 0, arr.Length - 1);
- Console.WriteLine("Массив отсортирован:");
- foreach (int x in arr)
- {
- Console.Write(x + " ");
- }
- Console.WriteLine();
- Console.WriteLine("Нажмите <<Enter>> для выхода");
- Console.ReadLine();
- }
- }
- }
Решение задачи: «Определение времени выполнения алгоритма быстрой сортировки»
textual
Листинг программы
- var stopwatch = System.Diagnostics.Stopwatch.StartNew();
- ...
- stopwatch.Stop();
- Console.WriteLine("Время выполнения алгоритма:" +stopwatch.Elapsed);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д