public void PerformanceTest(int numberOfIterations, int maxElements, int avgFrom) { Console.WriteLine($"Performance test for Quick Sort started. note that every record is an average from {avgFrom} tests"); int step = maxElements / numberOfIterations; int noOperations = 0; Stopwatch fullTime = new Stopwatch(); Stopwatch localTime = new Stopwatch(); for (int i = 1; i <= numberOfIterations; i++) { localTime.Reset(); var times = new List <long>(); for (int j = 0; j < avgFrom; j++) { //PrepairFile.CreateFile("file.txt", step * i); HeapSort sorted = new HeapSort(PrepairFile.GenerateRandomList(step * i)); fullTime.Start(); localTime.Start(); noOperations += sorted.SortAsc(); localTime.Stop(); fullTime.Stop(); } Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("-----------------------------"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine($"no. elements: {step * i}"); Console.WriteLine($"no. operatio: {noOperations / (double)avgFrom}"); Console.WriteLine($"TIME (ticks): {localTime.ElapsedMilliseconds / (double)avgFrom} ms"); Console.WriteLine($"TIME per el.: {(localTime.ElapsedMilliseconds / (double)avgFrom) / (double)(step * i)} ms"); } Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("-----------------------------"); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine($"Summary:\ntime: {fullTime.ElapsedMilliseconds} ms"); }
static void Main(string[] args) { Console.WriteLine("#######################"); Console.WriteLine("### SORTING CONSOLE ###"); Console.WriteLine("#######################\n\n"); int input; List <float> set = new List <float> { 6f, 0f, 5.3f, 8f, 10.5f, 4f, 2.4f, 7f, 2f }; PrepairFile.CreateFile("rr.txt", 5); input = ConsoleUI.Menu(); List <ISortable> sortables = new List <ISortable>() { }; sortables.Add(new BubbleSort(set)); sortables.Add(new SelectSort(set)); sortables.Add(new HeapSort(set)); sortables.Add(new QuickSort(set)); switch (input) { case 1: // from file Console.WriteLine("Podaj ścieżkę do pliku:"); string file = Console.ReadLine(); List <ISortable> fromFile = new List <ISortable>() { }; fromFile.Add(new BubbleSort(file)); fromFile.Add(new SelectSort(file)); fromFile.Add(new HeapSort(file)); fromFile.Add(new QuickSort(file)); foreach (var item in fromFile) { Console.WriteLine(" - - -"); item.SortAscWrite(); } break; case 2: // example set foreach (var item in sortables) { item.SortAscWrite(); } break; case 3: // performance Console.WriteLine("ustaw parametry, aby uruchomić testy wydajnościowe:"); int noZakresy, maxElements, avgFrom; while (true) { try { Console.Write("Podaj na ile zakresów chcesz podzielić test: "); noZakresy = Int32.Parse(Console.ReadLine()); Console.Write("Podaj maksymalną ilość elementów w zbiorze: "); maxElements = Int32.Parse(Console.ReadLine()); Console.WriteLine("Test uśredniony z (n) prób"); avgFrom = Int32.Parse(Console.ReadLine()); if (noZakresy > 0 && maxElements > 5 && avgFrom > 0) { break; } else { Console.WriteLine("podane wartości są zbyt małe"); } } catch (FormatException) { Console.WriteLine("nieprawidłowe dane, spróbuj ponownie"); noZakresy = 4; maxElements = 1024; avgFrom = 8; } } foreach (var item in sortables) { item.PerformanceTest(noZakresy, maxElements, avgFrom); } break; default: break; } //BubbleSort b = new BubbleSort(PrepairFile.GenerateRandomList(6)); //b.PerformanceTest(4, 2048, 16); //Console.WriteLine("\n\n"); //SelectSort s = new SelectSort(PrepairFile.GenerateRandomList(6)); //s.SortAsc(); ////ObjSort.DisplayList(s.SortedList); //s.PerformanceTest(4, 2048, 16); Console.WriteLine("Press any key to close"); Console.ReadKey(); }