Сравнить время сортировки массива - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Необходимо сравнить два метода сортировки массива. Решение написал, но вот в ответе почему то выходит время с минусом. Пример: 1) -449мс; 2) 150мс; 3) 1мс. Не могу понять почему так происходит. Если кто сталкивался, подскажите пожалуйста в чем причина вывода отрицательного времени. Спасибо.
    class Program
    {
        static void Main(string[] args)
        {
            Sort sort = new Sort();
            int size = 10000;
 
            double[] array = sort.getRandomArray(size);
 
            long time = DateTime.Now.Millisecond;
            sort.bubbleSort(array);
            Console.WriteLine("Сортировка пузырьком заняла: {0} мс",
                (DateTime.Now.Millisecond - time));
 
            array = sort.getRandomArray(size);
 
            time = DateTime.Now.Millisecond;
            sort.insertionSort(array);
            Console.WriteLine("Сортировка вставками заняла: {0} мс",
                (DateTime.Now.Millisecond - time));
 
            array = sort.getRandomArray(size);
 
            time = DateTime.Now.Millisecond;
            Array.Sort(array);
            Console.WriteLine("Сортировка методом Array.Sort(array) заняла: {0} мс ",
                (DateTime.Now.Millisecond - time));
 
            Console.ReadLine();
        }
    }
 
    class Sort
    {
        public double[] getRandomArray(int size)
        {
            Random n = new Random();
            double[] array = new double[size];
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = n.Next(0, size);
            }
            return array;
        }
 
        public void bubbleSort(double[] array)
        {
            double temp = 0;
 
            for (int i = 0; i < array.Length; i++)
            {
                for (int j = 1; j < array.Length - i; j++)
                {
                    if (array[j - 1] > array[j])
                    {
                        temp = array[j - 1];
                        array[j - 1] = array[j];
                        array[j] = temp;
                    }
                }
            }
        }
 
        public void insertionSort(double[] array)
        {
            for(int i = 1; i<array.Length; i++)
            {
                double currElem = array[i];
                int prevKey = i - 1;
                while(prevKey >=0 && array[prevKey]>currElem)
                {
                    array[prevKey + 1] = array[prevKey];
                    prevKey--;
                }
                array[prevKey + 1] = currElem;
            }
        }
    }

Решение задачи: «Сравнить время сортировки массива»

textual
Листинг программы
Console.WriteLine("Сортировка пузырьком заняла: {0} мс",
(DateTime.Now - time).TotalMilliseconds);

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


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

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

6   голосов , оценка 4.333 из 5
Похожие ответы