Добавление времени сортировки - C#

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

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

Доброго времени суток. Я начинающий. Столкнулся с проблемой, не могу разобраться никак со вставкой таймеров. Мне необходимо вставить время обработки цикла сортировки массива после каждой операции. Сами сортировки честно стырены с инета, но в них я разобрался. А вот время их выполнения ну никак не даются и мануалы не помогают. Вот мой код:
namespace Sorting
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            test();
            Console.ReadKey();
        }
 
        private static void test()
        {
            int[] a = gen_array(1000);
            Console.Write("{0, 10}","Случайный массив : ");            
            print(a);            
            selection_sort(a);
            Console.Write("{0, 10}", "Сортировка выбором: ");            
            print(a);
            //Console.Write("{0, 10}", "Время:");
            insert_sort(a);
            Console.Write("{0, 10}", "Сортировка вставками: ");            
            print(a);
        }
 
        private static void print(int[] a)
        {
            Array.ForEach(a, item => Console.Write("{0} ", item));
            Console.WriteLine();
        }
 
        private static int[] gen_array(int len)
        {            
            var array = new int[len];
            var r = new Random((int)DateTime.Now.Ticks & 0x0000FFFF);
            for (int i = 0; i < array.Length; ++i)
            {
                array[i] = r.Next(0, 10000);
            }
            return array;
 
        }
* * * * private static void insert_sort(int[] a)
        {
            for (int i = 1; i < a.Length; ++i)
            {
                for (int j = i; j > 0 && a[j] < a[j - 1]; --j)
                {
                    swap(ref a[j], ref a[j - 1]);
                }
            }
        }
 
* * * * private static void selection_sort(int[] a)
        {
            DateTime old2 = DateTime.Now;
            for (int i = 0; i < a.Length - 1; ++i)
            {
                int min = i;
                for (int j = i + 1; j < a.Length; ++j)
                {
                    if (a[j] < a[min])
                        min = j;
                }
                if (min != i)
                    swap(ref a[i], ref a[min]);
            }
        }
 
        private static void swap(ref int a1, ref int a2)
        {
            int t = a1;
            a1 = a2;
            a2 = t;
        }
 
    }
}
Прошу помощи, желательно с пояснениями. Заранее благодарен.
Извиняюсь, немного промахнулся веткой форума.

Решение задачи: «Добавление времени сортировки»

textual
Листинг программы
System.Diagnostics.Stopwatch myStopwatch = new System.Diagnostics.Stopwatch(); //Создаём метку времени
myStopwatch.Start(); //Говорим, что вот с этой строки надо считать время
Thread.Sleep(1000); //Задержка просто для примера, на месте этой строки должен быть код
myStopwatch.Stop(); //Говорим, что с этой строки надо перестать считать время
Console.WriteLine(myStopwatch.Elapsed.ToString()); //Выводим результат

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


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

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

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