快速排序
快速排序
模板
模板每次选取的枢轴元素为中间的值
//快速排序算法
void quickSort(int a[],int l,int r){
//递归边界判断
if(l>=r) return ;
//初始化指针
//这里-1和+1是因为后面代码使用了do-while循环结构
int i=l-1,j=r+1,x=a[i+j>>1];
while(ix);
if(i
数据结构课本算法
下面给出的算法没有经过改进,对于基本已经排好序的待排序列来说,算法复杂度较高
可以对下面的算法进行改进,每次选取的枢轴元素为随机选取或者取中间的值
int Partition(int a[],int low,int high){
int pivot=a[low];
while(lowpivot) high--;
a[low]=a[high];
while(a[low]