Пример #1
0
        public static void MergeSortTest()
        {
            var inputArray = new int[] { 99, 44, 6, 2, 1, 5, 63, 87, 283, 4, 0 };

            MergeSort.Sort(ref inputArray);

            Debug.Assert(Enumerable.SequenceEqual(inputArray, _sortedArray));

            Console.WriteLine("Sorted array: ");
            for (int i = 0; i < inputArray.Length; i++)
            {
                Console.Write(inputArray[i] + " ");
            }
        }
        // Show the list of sorting methods
        private static void SortingSelection(float[] inputNums)
        {
            string userInput = "{";

            for (int i = 0; i < inputNums.Length - 1; i++)
            {
                userInput += inputNums[i] + ", ";
            }
            userInput += inputNums[inputNums.Length - 1] + "}";

            Console.WriteLine("Now please choose a sorting method (Enter a number):\n" +
                              "1. Merge Sort\n" +
                              "2. Quick Sort\n" +
                              "3. Heap Sort\n" +
                              "4. Bubble Sort\n" +
                              "5. Shell Sort\n" +
                              "6. Selection Sort\n" +
                              "7. Insertion Sort\n"
                              );
            Console.Write("Enter your choice: ");
            string input = Console.ReadLine();
            int    inputInt;

            if (int.TryParse(input, out inputInt))
            {
                Console.WriteLine("Your input is " + userInput);
                float[]  userInputArray = inputNums;
                DateTime now            = DateTime.Now;
                switch (inputInt)
                {
                case 1:
                    Console.WriteLine("[" + DateTime.Now + "] Merge Sort starts");
                    MergeSort.MergeMain(inputNums);
                    ShowResult(inputNums, now);
                    break;

                case 2:
                    Console.WriteLine("[" + DateTime.Now + "] Quick Sort starts");
                    QuickSort.QuickMain(inputNums);
                    ShowResult(inputNums, now);
                    break;

                case 3:
                    Console.WriteLine("[" + DateTime.Now + "] Heap Sort starts");
                    HeapSort.HeapMain(inputNums);
                    ShowResult(inputNums, now);
                    break;

                case 4:
                    Console.WriteLine("[" + DateTime.Now + "] Bubble Sort starts");
                    BubbleSort.BubbleMain(inputNums);
                    ShowResult(inputNums, now);
                    break;

                case 5:
                    Console.WriteLine("[" + DateTime.Now + "] Shell Sort starts");
                    ShellSort.ShellMain(inputNums);
                    ShowResult(inputNums, now);
                    break;

                case 6:
                    Console.WriteLine("[" + DateTime.Now + "] Selection Sort starts");
                    Selection_Sort.SelectionSort(inputNums);
                    ShowResult(inputNums, now);
                    break;

                case 7:
                    Console.WriteLine("[" + DateTime.Now + "] Insertion Sort starts");
                    Insertion_Sort.InsertionMain(inputNums);
                    ShowResult(inputNums, now);
                    break;

                default:
                    break;
                }

                Console.WriteLine("\nDo you want to try another sorting method with the same input? (Y/N)");
                input = Console.ReadLine();
                if (input.ToLower().Replace(" ", "") == "y" ||
                    input.ToLower().Replace(" ", "") == "yes")
                {
                    Console.WriteLine("");
                    SortingSelection(userInputArray);
                }
            }
            else
            {
                Console.WriteLine("Sorry, please enter a number only for your selection.");
                SortingSelection(inputNums);
            }
        }