Swap() private static method

private static Swap ( Object array, int i, int j ) : void
array Object
i int
j int
return void
        internal void SortArray(int left, int right)
        {
            ArrayObject array = (ArrayObject)this.obj;
            Object      x, y;

            if (right > left)
            {
                int piv = left + (int)((right - left) * MathObject.random());
                x = array.denseArray[piv];
                array.denseArray[piv]   = array.denseArray[right];
                array.denseArray[right] = x;
                int i = left - 1, j = right;
                while (true)
                {
                    do
                    {
                        y = array.denseArray[++i];
                    }while(i < j && this.Compare(x, y) >= 0);
                    do
                    {
                        y = array.denseArray[--j];
                    }while(j > i && this.Compare(x, y) <= 0);
                    if (i >= j)
                    {
                        break;
                    }
                    QuickSort.Swap(array.denseArray, i, j);
                }
                QuickSort.Swap(array.denseArray, i, right);
                this.SortArray(left, i - 1);
                this.SortArray(i + 1, right);
            }
        }