Example #1
0
        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());
            }
        }
Example #3
0
 public void ThrowsExceprionTestCase2(int[] array)
 {
     Assert.Throws <ArgumentException>(() => MethodsOfSorting.QuickSort(array));
 }
Example #4
0
 public int[] SortTest1(int[] array)
 {
     MethodsOfSorting.QuickSort(array);
     return(array);
 }