代码如下:
static void quick_sort(int[] a, int start, int end)
{
int key, i, j, dir = -1, flag;
if (end <= start)
{
return;
}
flag = start;
key = a[flag];
i = start + 1;
j = end;
while(i<=j)
{
if (dir == -1)
{
if (a[j] < key)
{
a[flag] = a[j];
flag = j;
dir = 1;
}
j--;
}
else
{
if (a[i] > key)
{
a[flag] = a[i];
flag = i;
dir = -1;
}
i++;
}
}
a[flag] = key;
quick_sort(a, start, flag - 1);