/* 分区操作 */
int partition(int a[], int left, int right)
{
int tmp = a[left];
while(left < right)
{
while(left < right && a[right] >= tmp)
right--;
if(left < right)
a[left++] = a[right];
while(left < right && a[left] <= tmp)
left++;
if(left < right)
a[right--] = a[left];
}
a[left] = tmp;
return left;
}
/* */
void quick_sort(int a[], int left, int right)
{
int pos;
if(left < right)
{
pos = partition(a, left, right);
quick_sort(a, left, pos-1);
quick_sort(a, pos+1, right);
}
}