Определение времени выполнения алгоритма быстрой сортировки - 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);