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

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

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

Доброго времени суток. Необходимо сравнить два метода сортировки массива. Решение написал, но вот в ответе почему то выходит время с минусом. Пример: 1) -449мс; 2) 150мс; 3) 1мс. Не могу понять почему так происходит. Если кто сталкивался, подскажите пожалуйста в чем причина вывода отрицательного времени. Спасибо.
Листинг программы
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. Sort sort = new Sort();
  6. int size = 10000;
  7. double[] array = sort.getRandomArray(size);
  8. long time = DateTime.Now.Millisecond;
  9. sort.bubbleSort(array);
  10. Console.WriteLine("Сортировка пузырьком заняла: {0} мс",
  11. (DateTime.Now.Millisecond - time));
  12. array = sort.getRandomArray(size);
  13. time = DateTime.Now.Millisecond;
  14. sort.insertionSort(array);
  15. Console.WriteLine("Сортировка вставками заняла: {0} мс",
  16. (DateTime.Now.Millisecond - time));
  17. array = sort.getRandomArray(size);
  18. time = DateTime.Now.Millisecond;
  19. Array.Sort(array);
  20. Console.WriteLine("Сортировка методом Array.Sort(array) заняла: {0} мс ",
  21. (DateTime.Now.Millisecond - time));
  22. Console.ReadLine();
  23. }
  24. }
  25. class Sort
  26. {
  27. public double[] getRandomArray(int size)
  28. {
  29. Random n = new Random();
  30. double[] array = new double[size];
  31. for (int i = 0; i < array.Length; i++)
  32. {
  33. array[i] = n.Next(0, size);
  34. }
  35. return array;
  36. }
  37. public void bubbleSort(double[] array)
  38. {
  39. double temp = 0;
  40. for (int i = 0; i < array.Length; i++)
  41. {
  42. for (int j = 1; j < array.Length - i; j++)
  43. {
  44. if (array[j - 1] > array[j])
  45. {
  46. temp = array[j - 1];
  47. array[j - 1] = array[j];
  48. array[j] = temp;
  49. }
  50. }
  51. }
  52. }
  53. public void insertionSort(double[] array)
  54. {
  55. for(int i = 1; i<array.Length; i++)
  56. {
  57. double currElem = array[i];
  58. int prevKey = i - 1;
  59. while(prevKey >=0 && array[prevKey]>currElem)
  60. {
  61. array[prevKey + 1] = array[prevKey];
  62. prevKey--;
  63. }
  64. array[prevKey + 1] = currElem;
  65. }
  66. }
  67. }

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

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

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


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

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

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы