static void Main(string[] args) { List <int> i = new InputGenerator(0, 100).GenerateRandomList(10); Helpers.ConsoleNewLine(1); Helpers.PrintList(i, "============ Random List ============"); Helpers.ConsoleNewLine(2); //BUBBLE SORT Stopwatch bubbleWatch = new Stopwatch(); bubbleWatch.Start(); (List <int> bubbleSort, int bubbleOperations) = Sorters.BubbleSort(new List <int>(i)); bubbleWatch.Stop(); Helpers.ConsoleNewLine(1); Helpers.PrintList(bubbleSort, "============ BUBBLE Sorted List ============ \n" + "=> Basic Operations: " + bubbleOperations + "\n" + "=> Time Taken: " + bubbleWatch.Elapsed.TotalMilliseconds + " ms \n" ); Helpers.ConsoleNewLine(1); // MERGE SORT Stopwatch mergeWatch = new Stopwatch(); mergeWatch.Start(); (List <int> mergeSort, int mergeOperations) = Sorters.MergeSort(new List <int>(i)); mergeWatch.Stop(); Helpers.ConsoleNewLine(1); Helpers.PrintList(mergeSort, "============ MERGE Sorted List ============ \n" + "=> Basic Operations: " + mergeOperations + "\n" + "=> Time Taken: " + mergeWatch.Elapsed.TotalMilliseconds + " ms \n" ); Helpers.ConsoleNewLine(1); //INSERTION SORT Stopwatch insertionWatch = new Stopwatch(); insertionWatch.Start(); (List <int> insertionSort, int insertionOperations) = Sorters.InsertionSort(new List <int>(i), i.Count - 1); insertionWatch.Stop(); Helpers.ConsoleNewLine(1); Helpers.PrintList(mergeSort, "============ INSERTION Sorted List ============ \n" + "=> Basic Operations: " + insertionOperations + "\n" + "=> Time Taken: " + insertionWatch.Elapsed.TotalMilliseconds + " ms \n" ); Helpers.ConsoleNewLine(2); Helpers.ConsoleNewLine(1); Console.Write("Press any key to continue..."); Console.ReadKey(); }
public static void Main() { Stopwatch stopwatch = new Stopwatch(); #region Ordered Ints Console.WriteLine("Ordered int tests"); Console.WriteLine(); List <int> orderedInts = ListGenerator.GenerateOrderedIntList(); Console.WriteLine("Before sort: {0}", ListToString(orderedInts)); stopwatch.Start(); orderedInts = Sorters.SelectionSort(orderedInts); stopwatch.Stop(); Console.WriteLine("After selection sort: {0}", ListToString(orderedInts)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); orderedInts = ListGenerator.GenerateOrderedIntList(); Console.WriteLine("Before sort: {0}", ListToString(orderedInts)); stopwatch.Start(); orderedInts = Sorters.InsertionSort(orderedInts); stopwatch.Stop(); Console.WriteLine("After insertion sort: {0}", ListToString(orderedInts)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); orderedInts = ListGenerator.GenerateOrderedIntList(); Console.WriteLine("Before sort: {0}", ListToString(orderedInts)); stopwatch.Start(); orderedInts = Sorters.QuickSort(orderedInts); stopwatch.Stop(); Console.WriteLine("After quick sort: {0}", ListToString(orderedInts)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); #endregion #region Ordered Doubles Console.WriteLine("Ordered double tests"); Console.WriteLine(); List <double> orderedDoubles = ListGenerator.GenerateOrderedDoubleList(); Console.WriteLine("Before sort: {0}", ListToString(orderedDoubles)); stopwatch.Start(); orderedDoubles = Sorters.SelectionSort(orderedDoubles); stopwatch.Stop(); Console.WriteLine("After selection sort: {0}", ListToString(orderedDoubles)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); orderedDoubles = ListGenerator.GenerateOrderedDoubleList(); Console.WriteLine("Before sort: {0}", ListToString(orderedDoubles)); stopwatch.Start(); orderedDoubles = Sorters.InsertionSort(orderedDoubles); stopwatch.Stop(); Console.WriteLine("After insertion sort: {0}", ListToString(orderedDoubles)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); orderedDoubles = ListGenerator.GenerateOrderedDoubleList(); Console.WriteLine("Before sort: {0}", ListToString(orderedDoubles)); stopwatch.Start(); orderedDoubles = Sorters.QuickSort(orderedDoubles); stopwatch.Stop(); Console.WriteLine("After quick sort: {0}", ListToString(orderedDoubles)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); #endregion #region Ordered Strings Console.WriteLine("Ordered string tests"); Console.WriteLine(); List <string> orderedStrings = ListGenerator.GenerateOrderedStringList(); Console.WriteLine("Before sort: {0}", ListToString(orderedStrings)); stopwatch.Start(); orderedStrings = Sorters.SelectionSort(orderedStrings); stopwatch.Stop(); Console.WriteLine("After selection sort: {0}", ListToString(orderedStrings)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); orderedStrings = ListGenerator.GenerateOrderedStringList(); Console.WriteLine("Before sort: {0}", ListToString(orderedStrings)); stopwatch.Start(); orderedStrings = Sorters.InsertionSort(orderedStrings); stopwatch.Stop(); Console.WriteLine("After insertion sort: {0}", ListToString(orderedStrings)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); orderedStrings = ListGenerator.GenerateOrderedStringList(); Console.WriteLine("Before sort: {0}", ListToString(orderedStrings)); stopwatch.Start(); orderedStrings = Sorters.QuickSort(orderedStrings); stopwatch.Stop(); Console.WriteLine("After quick sort: {0}", ListToString(orderedStrings)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); #endregion #region Reverse Ordered Ints Console.WriteLine("Reverse ordered int tests"); Console.WriteLine(); List <int> reversedInts = ListGenerator.GenerateReversedIntList(); Console.WriteLine("Before sort: {0}", ListToString(reversedInts)); stopwatch.Start(); reversedInts = Sorters.SelectionSort(reversedInts); stopwatch.Stop(); Console.WriteLine("After selection sort: {0}", ListToString(reversedInts)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); reversedInts = ListGenerator.GenerateReversedIntList(); Console.WriteLine("Before sort: {0}", ListToString(reversedInts)); stopwatch.Start(); reversedInts = Sorters.InsertionSort(reversedInts); stopwatch.Stop(); Console.WriteLine("After insertion sort: {0}", ListToString(reversedInts)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); reversedInts = ListGenerator.GenerateReversedIntList(); Console.WriteLine("Before sort: {0}", ListToString(reversedInts)); stopwatch.Start(); reversedInts = Sorters.QuickSort(reversedInts); stopwatch.Stop(); Console.WriteLine("After quick sort: {0}", ListToString(reversedInts)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); #endregion #region Reverse Ordered Doubles Console.WriteLine("Reverse ordered double tests"); Console.WriteLine(); List <double> reversedDoubles = ListGenerator.GenerateReversedDoubleList(); Console.WriteLine("Before sort: {0}", ListToString(reversedDoubles)); stopwatch.Start(); reversedDoubles = Sorters.SelectionSort(reversedDoubles); stopwatch.Stop(); Console.WriteLine("After selection sort: {0}", ListToString(reversedDoubles)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); reversedDoubles = ListGenerator.GenerateReversedDoubleList(); Console.WriteLine("Before sort: {0}", ListToString(reversedDoubles)); stopwatch.Start(); reversedDoubles = Sorters.InsertionSort(reversedDoubles); stopwatch.Stop(); Console.WriteLine("After insertion sort: {0}", ListToString(reversedDoubles)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); reversedDoubles = ListGenerator.GenerateReversedDoubleList(); Console.WriteLine("Before sort: {0}", ListToString(reversedDoubles)); stopwatch.Start(); reversedDoubles = Sorters.QuickSort(reversedDoubles); stopwatch.Stop(); Console.WriteLine("After quick sort: {0}", ListToString(reversedDoubles)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); #endregion #region Reverse Ordered Strings Console.WriteLine("Reverse ordered string tests"); Console.WriteLine(); List <string> reversedStrings = ListGenerator.GenerateReversedStringList(); Console.WriteLine("Before sort: {0}", ListToString(reversedStrings)); stopwatch.Start(); reversedStrings = Sorters.SelectionSort(reversedStrings); stopwatch.Stop(); Console.WriteLine("After selection sort: {0}", ListToString(reversedStrings)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); reversedStrings = ListGenerator.GenerateReversedStringList(); Console.WriteLine("Before sort: {0}", ListToString(reversedStrings)); stopwatch.Start(); reversedStrings = Sorters.InsertionSort(reversedStrings); stopwatch.Stop(); Console.WriteLine("After insertion sort: {0}", ListToString(reversedStrings)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); reversedStrings = ListGenerator.GenerateReversedStringList(); Console.WriteLine("Before sort: {0}", ListToString(reversedStrings)); stopwatch.Start(); reversedStrings = Sorters.QuickSort(reversedStrings); stopwatch.Stop(); Console.WriteLine("After quick sort: {0}", ListToString(reversedStrings)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); #endregion #region Random Ints Console.WriteLine("Random int tests"); Console.WriteLine(); List <int> randomInts = ListGenerator.GenerateRandomIntList(); Console.WriteLine("Before sort: {0}", ListToString(randomInts)); stopwatch.Start(); randomInts = Sorters.SelectionSort(randomInts); stopwatch.Stop(); Console.WriteLine("After selection sort: {0}", ListToString(randomInts)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); randomInts = ListGenerator.GenerateRandomIntList(); Console.WriteLine("Before sort: {0}", ListToString(randomInts)); stopwatch.Start(); randomInts = Sorters.InsertionSort(randomInts); stopwatch.Stop(); Console.WriteLine("After insertion sort: {0}", ListToString(randomInts)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); randomInts = ListGenerator.GenerateRandomIntList(); Console.WriteLine("Before sort: {0}", ListToString(randomInts)); stopwatch.Start(); randomInts = Sorters.QuickSort(randomInts); stopwatch.Stop(); Console.WriteLine("After quick sort: {0}", ListToString(randomInts)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); #endregion #region Random Doubles Console.WriteLine("Random double tests"); Console.WriteLine(); List <double> randomDoubles = ListGenerator.GenerateRandomDoubleList(); Console.WriteLine("Before sort: {0}", ListToString(randomDoubles)); stopwatch.Start(); randomDoubles = Sorters.SelectionSort(randomDoubles); stopwatch.Stop(); Console.WriteLine("After selection sort: {0}", ListToString(randomDoubles)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); randomDoubles = ListGenerator.GenerateRandomDoubleList(); Console.WriteLine("Before sort: {0}", ListToString(randomDoubles)); stopwatch.Start(); randomDoubles = Sorters.InsertionSort(randomDoubles); stopwatch.Stop(); Console.WriteLine("After insertion sort: {0}", ListToString(randomDoubles)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); randomDoubles = ListGenerator.GenerateRandomDoubleList(); Console.WriteLine("Before sort: {0}", ListToString(randomDoubles)); stopwatch.Start(); randomDoubles = Sorters.QuickSort(randomDoubles); stopwatch.Stop(); Console.WriteLine("After quick sort: {0}", ListToString(randomDoubles)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); #endregion #region Random Strings Console.WriteLine("Random string tests"); Console.WriteLine(); List <string> randomStrings = ListGenerator.GenerateRandomStringList(); Console.WriteLine("Before sort: {0}", ListToString(randomStrings)); stopwatch.Start(); randomStrings = Sorters.SelectionSort(randomStrings); stopwatch.Stop(); Console.WriteLine("After selection sort: {0}", ListToString(randomStrings)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); randomStrings = ListGenerator.GenerateRandomStringList(); Console.WriteLine("Before sort: {0}", ListToString(randomStrings)); stopwatch.Start(); randomStrings = Sorters.InsertionSort(randomStrings); stopwatch.Stop(); Console.WriteLine("After insertion sort: {0}", ListToString(randomStrings)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); randomStrings = ListGenerator.GenerateRandomStringList(); Console.WriteLine("Before sort: {0}", ListToString(randomStrings)); stopwatch.Start(); randomStrings = Sorters.QuickSort(randomStrings); stopwatch.Stop(); Console.WriteLine("After quick sort: {0}", ListToString(randomStrings)); Console.WriteLine("Time - {0}", stopwatch.Elapsed); stopwatch.Reset(); Console.WriteLine(); #endregion }