Определение времени выполнения алгоритма быстрой сортировки - 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д