用户

个人简介

int partition(int low,int high)//完成一次划分 
{
  int p=arr[low];
  while(low<high)//当low和high没有重合 
  {
while(low<high&&arr[high]>=p)high--;
    //如果高位数大于参照数,则不动 
    arr[low]=arr[high];//将高位数放到低位 
   while(low<high&&arr[low]<=p)low++;
    //如果低位数小于参照数,则不动 
    arr[high]=arr[low];//将低位数放到高位 
  }
  arr[low]=p;//将分界点数放回 
  return low;//返回分界点 
}
进行一趟快速排序后再分别对分割所得的两个子序列进行快速排序.