public
class
QuickSort
{
public
static
void
Quicksort(
int
[] r,
int
low,
int
high)
{
int
pivotLoc = 0;
if
(low < high)
{
pivotLoc = Partition(r, low, high);
Quicksort(r, low, pivotLoc - 1);
Quicksort(r, pivotLoc + 1, high);
}
}
public
static
int
Partition(
int
[] r,
int
low,
int
high)
{
int
pivot;
pivot = r[low];
while
(low < high)
{
if
(low < high && pivot < r[high])
{
high--;
}
r[low] = r[high];
if
(low < high && r[low] <= pivot)
{
low++;
}
r[high] = r[low];
}
r[low] = pivot;
return
low;
}
}