快速排序
逆序和正序比较
/*
*a 数组
*low 开始位置
*high 结束位置
*/
QuickSort(int* a,int low,int high)
{
/*
*k保留基准的值,在找到位置后赋予
*x保留每次循环位置的标号,在超出位置时跳出
*I 和 j保存循环值
*/
Int k = a[low];
Int x = low;
Int I = low;
Int j = high;
/*
*在 i< j时进行循环
*/
While(I < j)
{
/*
*当位于基准右边的值小于基准时交换
*当位于基准左边的值大于基准时交换
*重复循环直到I >= j
*即找到合适的位置i
*/.
While(I < j && k < a[j]) j --;
If(I < j) a[i] = a[j];
While(I < j && k >a[i]) a ++;
If(I < j) a[j] = a[i];
}
Return I;
}