public void SortTestOnBigSizeArray() { int[] array = new int[int.MaxValue / 10000]; Random rand = new Random(); for (int i = 0; i < array.Length; i++) { array[i] = rand.Next(int.MinValue, int.MaxValue) - int.MaxValue / 4; } int[] expected = array.OrderBy(i => i).ToArray(); MethodsOfSorting.MergeSort(array); CollectionAssert.AreEqual(array, expected); }
/// <summary> /// An overloaded version of the public method /// </summary> /// <param name="array">Source array</param> /// <returns>The required number or zero, if none is found</returns> private static int FindNextBiggerNumber(int[] array) { Validate(array); int sourceNumber = array.ArrayToNumber(); int indexTemp = FindIndexOfMax(array, 1); Swap(ref array[indexTemp], ref array[indexTemp - 1]); int min = array.ArrayToNumber(); Swap(ref array[indexTemp], ref array[indexTemp - 1]); int minIndex = 0; int[] minArray = new int[array.Length]; for (int i = 0, k = 1; i < array.Length - 1; i++, k++) { int index = FindIndexOfMax(array, k); Swap(ref array[index], ref array[index - 1]); int temp = array.ArrayToNumber(); if (temp <= min && temp > sourceNumber) { minIndex = index; min = temp; Array.Copy(array, minArray, array.Length); } Swap(ref array[index], ref array[index - 1]); } if (minIndex == minArray.Length - 1) { return(minArray.ArrayToNumber()); } else { MethodsOfSorting.QuickSort(minArray, minIndex, minArray.Length - 1); return(minArray.ArrayToNumber()); } }
public void ThrowsExceprionTestCase2(int[] array) { Assert.Throws <ArgumentException>(() => MethodsOfSorting.QuickSort(array)); }
public int[] SortTest1(int[] array) { MethodsOfSorting.QuickSort(array); return(array); }