Esempio n. 1
0
        public static void TestSorting2()
        {
            float[] testArray = Utils.ParseFile(Utils.InputLoopFilePath("Input some files path:"));

            Sorting.SortArray(testArray);

            Console.WriteLine();
            Utils.WriteArray(testArray, "Sorted", 7);
            Utils.WriteArrayTree(testArray, "Sorted", 5);
            Console.WriteLine("Comparisons: {0}", Sorting.Instance.Comparisons);
            Console.WriteLine("Swaps: {0}", Sorting.Instance.Swaps);
        }
Esempio n. 2
0
        public static void TestSorting()
        {
            float[] testArray = Utils.RandomArray(100);

            float[] sortedTestArray = new float[100];
            Utils.CopyArray(testArray, sortedTestArray, testArray.Length);

            Sorting.SortArray(sortedTestArray);

            Console.Clear();
            Utils.WriteArray(testArray, "Unsorted", 7);
            Console.WriteLine();
            Utils.WriteArray(sortedTestArray, "Sorted", 7);
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            bool isInNoneStandardMode = false;

            for (int i = 0; i < args.Length; i++)
            {
                switch (args[i])
                {
                case "-benchmark":
                    isInNoneStandardMode = true;
                    Benchmark();
                    break;

                case "-testSearching":
                    isInNoneStandardMode = true;
                    TestSearching();
                    break;

                case "-testSlowSort":
                    isInNoneStandardMode = true;
                    TestSlowSort();
                    break;

                case "-testSorting":
                    isInNoneStandardMode = true;
                    TestSorting();
                    break;

                case "-testSorting2":
                    isInNoneStandardMode = true;
                    TestSorting2();
                    break;
                }
            }

            if (isInNoneStandardMode == false)
            {
                while (true)
                {
                    string[] files = GetFiles();
                    for (int i = 0; i < files.Length; i++)
                    {
                        Console.Clear();
                        Console.WriteLine("Reading File: {0}", Path.GetFileNameWithoutExtension(files[i]));
                        float[] values = Utils.ParseFile(files[i]);
                        if (Utils.InputLoop(@"Would you like to merge multiple files for this search:
    0 - Yes
    1 - No"))
                        {
                            while (true)
                            {
                                List <int> indexs  = new List <int>();
                                string     message = string.Format("Which files would you like to merge with {0}:", Path.GetFileNameWithoutExtension(files[i]));
                                for (int x = i + 1; x < files.Length; x++)
                                {
                                    indexs.Add(x);
                                    message += string.Format("\n\t{0} - {1}", x, Path.GetFileNameWithoutExtension(files[x]));
                                }
                                int choice = Utils.InputLoop(message, indexs.ToArray());
                                values = Utils.ParseMergeFiles(values, files[choice]);

                                if (!Utils.InputLoop(@"Would you like to merge another file:
    0 - Yes
    1 - No"))
                                {
                                    break;
                                }
                            }
                        }

                        Utils.ConsoleHang();
                        Console.Clear();

                        arrayPrintingChoice = Utils.InputLoop(ARRAY_PRINTING_SELECTION, ARRAY_PRINTING_I);

                        #region Sort
                        float[] sortingValues            = new float[values.Length];
                        int     sortingComparisonsChoice = Utils.InputLoop(SORTING_COMPARE_SELECTION, Utils.YES_NO_I);
                        switch (sortingComparisonsChoice)
                        {
                        case Utils.YES:
                            List <SortingStatistics> sortingStatistics = new List <SortingStatistics>();
                            while (true)
                            {
                                Utils.CopyArray(values, sortingValues, values.Length);
                                Sorting.SortArray(sortingValues);
                                sortingStatistics.Add(Sorting.Instance.GetStatistics);

                                ArrayPrinting(sortingValues, arrayPrintingChoice, Path.GetFileNameWithoutExtension(files[i]));
                                Console.WriteLine();
                                Utils.WriteLastStatisticsSort();

                                Utils.ConsoleHang();
                                Console.Clear();

                                if (!Utils.InputLoop(SORTING_AGAIN_SELECTION))
                                {
                                    break;
                                }
                            }

                            // Compare Sorts
                            foreach (SortingStatistics stats in sortingStatistics)
                            {
                                Utils.WriteLastStatisticsSort();
                                Console.WriteLine();
                            }

                            Utils.ConsoleHang();
                            Console.Clear();
                            break;

                        case Utils.NO:
                            Utils.CopyArray(values, sortingValues, values.Length);
                            Sorting.SortArray(sortingValues);

                            ArrayPrinting(sortingValues, arrayPrintingChoice, Path.GetFileNameWithoutExtension(files[i]));
                            Console.WriteLine();
                            Utils.WriteLastStatisticsSort();

                            Utils.ConsoleHang();
                            Console.Clear();
                            break;

                        default:
                            break;
                        }

                        Utils.ConsoleHang();
                        Console.Clear();
                        #endregion

                        #region SearchArray
                        int searchComparisonsChoice = Utils.InputLoop(SEARCHING_COMPARE_SELECTION, Utils.YES_NO_I);
                        switch (searchComparisonsChoice)
                        {
                        case Utils.YES:
                            List <SearchingStatistics> searchingStatistics = new List <SearchingStatistics>();
                            while (true)
                            {
                                Searching.SearchArray(sortingValues);
                                Utils.WriteLastStatisticsSearch();

                                searchingStatistics.Add(Searching.Instance.GetStatistics);

                                Utils.ConsoleHang();
                                Console.Clear();

                                if (Utils.InputLoop(KEEP_SEARCHING_SELECTION))
                                {
                                    break;
                                }
                            }

                            Console.Clear();

                            foreach (SearchingStatistics stats in searchingStatistics)
                            {
                                Utils.WriteStatisticsSearch(stats);
                                Console.WriteLine();
                            }

                            Console.Clear();
                            break;

                        case Utils.NO:
                            while (true)
                            {
                                Searching.SearchArray(sortingValues);
                                Utils.WriteLastStatisticsSearch();

                                Utils.ConsoleHang();
                                Console.Clear();

                                if (Utils.InputLoop(KEEP_SEARCHING_SELECTION))
                                {
                                    break;
                                }
                            }
                            break;

                        default:
                            break;
                        }

                        Utils.ConsoleHang();
                        Console.Clear();
                        #endregion

                        if (Utils.InputLoop(LOAD_DIFFERENT_FILES_SELECTION))
                        {
                            break;
                        }
                    }
                }
            }

            // Make the console hang till user input.
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }