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); }
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); }
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 }