public void ExampleTest3() { RadixSorter.RadixSort(_arr, 3, 3); _arr[0].Should().Be("aba"); _arr[1].Should().Be("baa"); _arr[2].Should().Be("bbb"); }
public void NullComparison() { var sorter = new RadixSorter(); var list = GetReverseSequentialTestList(); sorter.Sort(list, SortOrder.Ascending); AssertGeneralTestListSorted(list); }
public Researcher(BubleSorter bubleSorter, ShellSorter shellSorter, QuickSorter quickSorter, MergeSorter mergeSorter, HeapSorter heapSorter, RadixSorter radixSorter, BuiltInSorter builtInSorter, DataGenerator dataGenerator, IOptions <ResearcherSettings> options) { _dataGenerator = dataGenerator; _settings = options.Value; _sorters = new Sorter[] { bubleSorter, shellSorter, quickSorter, mergeSorter, heapSorter, radixSorter, builtInSorter }; }
public BenchmarkRadixSort() { sources = new float[100][]; for (int i = 0; i < sources.Length; i++) { sources[i] = Enumerable.Range(0, 1 << 20).Select(value => ((float)value - (1 << 19)) * MathF.Sqrt(i + 1f)).ToArray(); sources[i].Shuffle(); } sources.Shuffle(); radix = new RadixSorter(); }
public void SortExample() { var sorter = new RadixSorter(); var list = new List<int> {13, 5, 77, 9, 12}; sorter.Sort(list); Assert.AreEqual(5, list[0]); Assert.AreEqual(9, list[1]); Assert.AreEqual(12, list[2]); Assert.AreEqual(13, list[3]); Assert.AreEqual(77, list[4]); }
public static void SortsArray([Random(0, 1000, 100, Distinct = true)] int n) { // Arrange var sorter = new RadixSorter(); var(correctArray, testArray) = RandomHelper.GetArrays(n); // Act sorter.Sort(testArray); Array.Sort(correctArray); // Assert Assert.AreEqual(correctArray, testArray); }
public void Sort_DoesNotChange_OriginalInput() { //arrange const int firstElement = 5, lastElement = 3; var original = new List <int> { firstElement, 2, 4, 6, 1, lastElement }; var sorter = new RadixSorter(); //act var sorted = sorter.Sort(original); //assert original[0].Should().Be(firstElement); original[5].Should().Be(lastElement); }
public void SortExample() { var sorter = new RadixSorter(); var list = new List <int> { 13, 5, 77, 9, 12 }; sorter.Sort(list); Assert.AreEqual(5, list[0]); Assert.AreEqual(9, list[1]); Assert.AreEqual(12, list[2]); Assert.AreEqual(13, list[3]); Assert.AreEqual(77, list[4]); }
public void Simple2() { var sorter = new RadixSorter(); var list1 = new List<int> {1, 2}; sorter.Sort(list1, SortOrder.Ascending); Assert.AreEqual(1, list1[0]); Assert.AreEqual(2, list1[1]); var list2 = new List<int> {1, 2}; sorter.Sort(list2, SortOrder.Descending); Assert.AreEqual(2, list2[0]); Assert.AreEqual(1, list2[1]); }
static void TestRadixSort() { try { Sorter sorter = new RadixSorter(); Console.WriteLine("Testing sort: " + sorter.GetType().Name); int[] arr = GenerateArray(10, 0, 10); Console.WriteLine("Source array: " + ArrToString(arr)); sorter.Sort(arr); Console.WriteLine("Resulting array: " + ArrToString(arr)); Console.WriteLine("OK!"); } catch (Sorter.InvalidRealizationException ex) { Console.WriteLine(ex.Info); } }
public void Sort_Returns_AscOrderedCollection() { //arrange var original = new List <int> { 5, 2, 4, 6, 1, 3 }; var sorter = new RadixSorter(); //act var sorted = sorter.Sort(original).ToList(); //assert var prev = sorted[0]; for (var i = 1; i < sorted.Count; i++) { prev.Should().BeLessOrEqualTo(sorted[i]); prev = sorted[i]; } }
static void Analise() { // Measuring merge sorter Sorter merge = new MergeSorter(); Sorter tree = new TreeSorter(); Sorter radix = new RadixSorter(); var mergeTimes = AnaliseSorterRandom(merge); var treeTimes = AnaliseSorterRandom(tree); var radixTimes = AnaliseSorterRandom(radix); File.WriteAllLines("mergeRandom.txt", ToStringArray(mergeTimes)); File.WriteAllLines("treeRandom.txt", ToStringArray(treeTimes)); File.WriteAllLines("radixRandom.txt", ToStringArray(radixTimes)); mergeTimes = AnaliseSorterReverted(merge); treeTimes = AnaliseSorterReverted(tree); radixTimes = AnaliseSorterReverted(radix); File.WriteAllLines("mergeReverted.txt", ToStringArray(mergeTimes)); File.WriteAllLines("treeReverted.txt", ToStringArray(treeTimes)); File.WriteAllLines("radixReverted.txt", ToStringArray(radixTimes)); }
public void RadixSorterTest() { IRadixSorter radixSorter = new RadixSorter(); RunTests(radixSorter); }
static void Main(string[] args) { Console.WriteLine("请选择算法:"); Console.WriteLine("1.选择排序"); Console.WriteLine("2.冒泡排序"); Console.WriteLine("3.高速排序"); Console.WriteLine("4.插入排序"); Console.WriteLine("5.希尔排序"); Console.WriteLine("6.归并排序"); Console.WriteLine("7.基数排序"); Console.WriteLine("8.计数排序"); Console.WriteLine("9.堆排序"); Console.WriteLine("0.退出"); int type = Convert.ToInt32(Console.ReadLine()); string typename = ""; switch (type) { case 1: //选择排序 typename = "选择排序"; break; case 2: //冒泡排序 typename = "冒泡排序"; break; case 3: //高速排序 typename = "高速排序"; break; case 4: //插入排序 typename = "插入排序"; break; case 5: //希尔排序 typename = "希尔排序"; break; case 6: //归并排序 typename = "归并排序"; break; case 7: //基数排序 typename = "基数排序"; break; case 8: //计数排序 typename = "计数排序"; break; case 9: //堆排序 typename = "堆排序"; break; default: typename = "您未选择算法"; break; } Console.WriteLine("您选择了{0}.{1}:", type, typename); int[] arrInt = new int[] { 4, 2, 7, 1, 8, 3, 9, 0, 5, 6 }; int[] intArray = new int[] { 5, 3, 7, 4, 8, 2, 9, 1, 0, 6 }; int[] newIntArray = intArray; switch (type) { case 1: //选择排序 SelectionSorter selSor = new SelectionSorter(); selSor.Sort(arrInt); foreach (int i in arrInt) { Console.WriteLine(i); } Console.ReadKey(); break; case 2: //冒泡排序 EbullitionSorter ebuSor = new EbullitionSorter(); ebuSor.Sort(arrInt); foreach (int i in arrInt) { Console.WriteLine(i); } Console.ReadKey(); break; case 3: //高速排序 QuickSorter quiSor = new QuickSorter(); quiSor.Sort(arrInt, 0, arrInt.Length - 1); foreach (int i in arrInt) { Console.WriteLine(i); } Console.ReadKey(); break; case 4: //插入排序 InsertionSorter insSor = new InsertionSorter(); insSor.Sort(arrInt); foreach (int i in arrInt) { Console.WriteLine(i); } Console.ReadKey(); break; case 5: //希尔排序 ShellSorter sheSor = new ShellSorter(); sheSor.Sort(arrInt); foreach (int i in arrInt) { Console.WriteLine(i); } Console.ReadKey(); break; case 6: //归并排序 while (true) { Console.WriteLine("请选择:"); Console.WriteLine("1.归并排序(非递归)"); Console.WriteLine("2.归并排序(递归)"); Console.WriteLine("3.归并排序(自然合并)"); Console.WriteLine("4.退出"); int Arraynum = Convert.ToInt32(Console.ReadLine()); switch (Arraynum) { case 4: Environment.Exit(0); break; case 1: Console.WriteLine("Please Input Array Length"); int Leng271 = Convert.ToInt32(Console.ReadLine()); Function obj1 = new Function(Leng271); Console.WriteLine("The original sequence:"); Console.WriteLine(obj1); Console.WriteLine("'MergeSort' Finaly Sorting Result:"); obj1.ToMergeSort(); Console.WriteLine(obj1); break; case 2: Console.WriteLine("Please Input Array Length"); int Leng272 = Convert.ToInt32(Console.ReadLine()); Function obj2 = new Function(Leng272); Console.WriteLine("The original sequence:"); Console.WriteLine(obj2); Console.WriteLine("'RecursiveMergeSort' Finaly Sorting Result:"); obj2.ToRecursiveMergeSort(); Console.WriteLine(obj2); break; case 3: Console.WriteLine("Please Input Array Length"); int Leng273 = Convert.ToInt32(Console.ReadLine()); Function obj3 = new Function(Leng273); Console.WriteLine("The original sequence:"); Console.WriteLine(obj3); obj3.ToNaturalMergeSort(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("'NaturalMergeSort' Finaly Sorting Result:"); Console.WriteLine(obj3); break; } } case 7: //基数排序 RadixSorter rS = new RadixSorter(); newIntArray = rS.RadixSort(intArray, intArray.Length); foreach (int i in intArray) { Console.Write(i + " "); } Console.ReadKey(); break; case 8: //计数排序 int[] intNewArray = intArray; intNewArray = Counting.CountingSort(intArray, intArray.Length); foreach (int i in intNewArray) { Console.Write(i + " "); } Console.ReadKey(); break; case 9: //堆排序 HeapSort.HeapSortFunction(intArray); foreach (int i in intArray) { Console.Write(i + " "); } Console.ReadKey(); break; default: Environment.Exit(0); break; } }
public void Simple1() { var sorter = new RadixSorter(); TestSorter(sorter); }
public void ExceptionNullList3() { var sorter = new RadixSorter(); sorter.Sort(null, SortOrder.Ascending); }
public void ExceptionNullList1() { var sorter = new RadixSorter(); sorter.Sort(null); }