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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5