예제 #1
0
        static void Shaker()
        {
            //Шейкерная сортировка
            FC.Input("Введите размер массива", out int num);
            int[]  array = new int[num];
            Random rnd   = new Random();

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rnd.Next(1, 100);
            }
            Console.WriteLine("\nКоличество операций: " +
                              CocktailShakerSort.ShakerSort(array));
            Console.ReadLine();
        }
예제 #2
0
        static void SortCompare()
        {
            //Сравнение эффективности сортировок
            FC.Input("Введите размер массива", out int num);
            int[]  array = new int[num];
            Random rnd   = new Random();

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rnd.Next(1, 100);
            }
            Console.WriteLine("Сортировка пузырьком");
            Console.WriteLine("\nКоличество операций: " +
                              BubbleSort.BubbleSortSimple(array));
            Console.ReadLine();
            Console.WriteLine("Оптимизированная сортировка пузырьком");
            Console.WriteLine("\nКоличество операций: " +
                              BubbleSort.BubbleSortOptimized(array));
            Console.ReadLine();
            Console.WriteLine("Шейкерная сортировка");
            Console.WriteLine("\nКоличество операций: " +
                              CocktailShakerSort.ShakerSort(array));
            Console.ReadLine();
            Console.WriteLine("Сортировка выбором");
            Console.WriteLine("\nКоличество операций: " +
                              SelectionSortClass.SelectionSort(array));
            Console.ReadLine();

            Console.WriteLine("Сортировка LINQ");
            DateTime start   = DateTime.Now;
            var      posNums = array.OrderBy(o => o);
            //var posNums = from n in array
            //              orderby n
            //              select n;
            TimeSpan total = DateTime.Now - start;

            foreach (int i in posNums)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine("\nВремя работы алгоритма: " + total.TotalMilliseconds);
            Console.ReadLine();
        }