QuickSort.Quicksort C# (CSharp) Method

Quicksort() public static method

public static Quicksort ( IComparable elements, int left, int right ) : void
elements IComparable
left int
right int
return void
    public static void Quicksort(IComparable[] elements, int left, int right)
    {
        int i = left, j = right;
        IComparable pivot = elements[(left + right) / 2];

        while (i <= j)
        {
            while (elements[i].CompareTo(pivot) < 0)
            {
                i++;
            }
            while (elements[j].CompareTo(pivot) > 0)
            {
                j--;
            }
            if (i <= j)
            {
                // Swap
                IComparable temp = elements[i];
                elements[i] = elements[j];
                elements[j] = temp;

                i++;
                j--;
            }
        }
        if (left < j)
        {
            Quicksort(elements, left, j);
        }
        if (i < right)
        {
            Quicksort(elements, i, right);
        }
    }
}

Usage Example

Esempio n. 1
0
 public void CanSortAllZeros()
 {
     int[] testArray = { 0, 0, 0, 0, 0, 0, 0 };
     QuickSort.Quicksort(testArray, 0, testArray.Length - 1);
     int[] resultArray = { 0, 0, 0, 0, 0, 0, 0 };
     Assert.Equal(resultArray, QuickSort.Quicksort(testArray, 0, testArray.Length - 1));
 }
All Usage Examples Of QuickSort::Quicksort