有时候需要用可以直接看这个,记录一下以备不时之需。。
#includeusing namespace std; int Partition(int a[],int p,int r){ //p regers to start,r refers to end int i = p; int j = r+1; int base = a[p]; while (1){ while(a[i++] base); //找到右边的数小于base if(i>=j) break; //如果都没有就跳过 swap(a[i],a[j]); //交换大小数的值 } a[p] = a[j]; //改变base值 a[j] = base; //将base值放到中间 return j; //return中间值,相当于cut,之后再递归处理 } void quickSort(int a[],int p,int r){ if(p //满足条件时: int cut = Partition(a,p,r); //得到cut值 quickSort(a,p,cut-1); quickSort(a,cut+1,r); } }
注释还是比较明白的,根据情况不同可做一些更改。。



