示例#1
0
        private static void PlainSearch(string src, string sub)
        {
            RkSearch rksearch = new RkSearch();
            SimpleSearch ssearch = new SimpleSearch();
            DumbSearch dsearch = new DumbSearch();

            DateTime start, end;
            int idx = 0;

            Console.WriteLine("Searching");
            Console.WriteLine("Dumb Search ... ");
            start = DateTime.Now;
            idx = dsearch.Search(src, sub);
            end = DateTime.Now;
            Console.WriteLine("Dumb Search Time: {0}ms", (end - start).TotalMilliseconds);
            Console.WriteLine("Index: {0}", idx);

            Console.WriteLine("Simple Search ... ");
            start = DateTime.Now;
            idx = ssearch.Search(src, sub);
            end = DateTime.Now;
            Console.WriteLine("Simple Search Time: {0}ms", (end - start).TotalMilliseconds);
            Console.WriteLine("Index: {0}", idx);

            Console.WriteLine("Rabin Karp Search ... ");
            start = DateTime.Now;
            idx = rksearch.Search(src, sub);
            end = DateTime.Now;
            Console.WriteLine("RK Search Time: {0}ms", (end - start).TotalMilliseconds);
            Console.WriteLine("Index: {0}", idx);
        }
示例#2
0
        private static void BasicDemo()
        {
            RkSearch rksearch = new RkSearch();
            SimpleSearch ssearch = new SimpleSearch();
            DumbSearch dsearch = new DumbSearch();

            SeqUtils gen = new SeqUtils();
            int seqLen = 200000000;
            Console.Write("Generating sequence of length {0} ....", seqLen);
            string src = gen.GenerateSequence(200000000);
            Console.WriteLine("Done.");

            int subPos = 85000001;
            int subLen = 25;
            Console.WriteLine("Substring of length {0} and at position {1}", subLen, subPos);
            string sub = src.Substring(85000001, 25);

            PlainSearch(src, sub);

            int diff = 4;
            sub = gen.InsertDiff(sub, diff);
            DiffSearch(src, sub, diff);
        }
示例#3
0
        static void Main(string[] args)
        {
            #region Условные константы

            Stopwatch stopwatch = new Stopwatch();
            var       arr       = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
                                              26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
                                              51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
                                              76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 };
            var smallList = new List <int>()
            {
                4, 3, 8, 1, 9, 5, 2, 6, 7
            };
            var smallArr = new int[] { 4, 3, 8, 1, 9, 5, 2, 6, 7 };
            #endregion


            #region Тупой поиск

            stopwatch.Start();
            DumbSearch dumbSearch = new DumbSearch();
            Console.WriteLine(dumbSearch.Dumb(arr, 99));
            stopwatch.Stop();
            Console.WriteLine($"Время выполнения \"тупого\" поиска: {stopwatch.Elapsed}"); //Совет: запустите несколько раз и примерно найдите среднее.
            stopwatch.Reset();

            #endregion


            #region Визуализация бинарного поиска.

            stopwatch.Start();
            BinarySearch binarySearch = new BinarySearch();
            Console.WriteLine(binarySearch.Binary(arr, 99));
            stopwatch.Stop();
            Console.WriteLine($"Время выполнения бинарного поиска: {stopwatch.Elapsed}"); //Совет: запустите несколько раз и примерно найдите среднее.
            stopwatch.Reset();

            #endregion

            #region Сортировка выбором.

            stopwatch.Start();
            SelectionSort selectionSort = new SelectionSort();
            Console.WriteLine(string.Join(", ", selectionSort.SelectionSorting(smallList)));
            stopwatch.Stop();
            Console.WriteLine($"Время выполнения сортировки выбором: {stopwatch.Elapsed}"); //Совет: запустите несколько раз и примерно найдите среднее.
            stopwatch.Reset();

            #endregion

            #region  екурсия.

            stopwatch.Start();
            Rekursion rekursion = new Rekursion();
            Console.WriteLine(rekursion.Factorial(5));
            stopwatch.Stop();
            Console.WriteLine($"Время выполнения рекурсии: {stopwatch.Elapsed}"); //Совет: запустите несколько раз и примерно найдите среднее.

            #endregion

            #region Быстрая сортировка.

            stopwatch.Start();
            QuickSort quickSort = new QuickSort();
            Console.WriteLine(string.Join(", ", quickSort.QuickSorting(smallArr)));
            stopwatch.Stop();
            Console.WriteLine($"Время выполнения быстрой сортировки: {stopwatch.Elapsed}"); //Совет: запустите несколько раз и примерно найдите среднее.

            #endregion

            #region Хеш-таблицы

            stopwatch.Start();
            HashTables hashTables = new HashTables();
            Console.WriteLine(hashTables.Check("Egor"));
            Console.WriteLine(hashTables.Check("Egor"));
            stopwatch.Stop();
            Console.WriteLine($"Время выполнения заполнения хеш таблицы: {stopwatch.Elapsed}");

            #endregion

            #region Поиск в ширину

            stopwatch.Start();
            BreadthFirstSearch breadthFirstSearch = new BreadthFirstSearch();

            breadthFirstSearch._graph.Add("you", new[] { "alice", "bob", "claire" });
            breadthFirstSearch._graph.Add("bob", new[] { "anuj", "peggy" });
            breadthFirstSearch._graph.Add("alice", new[] { "peggy" });
            breadthFirstSearch._graph.Add("claire", new[] { "thom", "jonny" });
            breadthFirstSearch._graph.Add("anuj", Array.Empty <string>());
            breadthFirstSearch._graph.Add("peggy", Array.Empty <string>());
            breadthFirstSearch._graph.Add("thom", Array.Empty <string>());
            breadthFirstSearch._graph.Add("jonny", Array.Empty <string>());
            Console.WriteLine(breadthFirstSearch.Search("you"));

            stopwatch.Stop();

            Console.WriteLine($"Время выполнения: {stopwatch.Elapsed}");

            #endregion

            #region Алгоритм Дейкстры

            stopwatch.Start();

            FindLowest findLowest = new FindLowest();
            Console.WriteLine(findLowest.Find());
            stopwatch.Stop();

            Console.WriteLine($"Время выполнения: {stopwatch.Elapsed}");
            #endregion
        }