还可以优化
使用随机取值,而不是取首位的数值。
使用荷兰国旗算法优化。
#include<iostream>
#include<cmath>
using namespace std;
void swap(int &a, int &b){ //交换变量a,b的值
int tmp = a;
a=b;
b=tmp;
}
void quicksort(int a[], int s, int e){
if(s >= e) return;
int k=a[s];
int i=s,j=e; //两个指针
while(i != j){
while(i<j && a[j] >= k) j--;
swap(a[i],a[j]);
while(i<j && a[i] <= k) i++;
swap(a[i],a[j]);
}
quicksort(a,s,i-1);
quicksort(a,i+1,e);
}
int main(){
int a[10]={13,27,19,2,8,12,2,8,30,89};
int size=sizeof(a)/sizeof(int);
quicksort(a,0,size-1);
for(int i=0;i<size;i++){
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}