算法导论的快排算法,
#include <iostream>
using namespace std;
int a[] = {9};
void exchange(int& x, int& y){
int tem = x;
x = y;
y = tem;
}
int par(int a[],int b,int e){
int x = a[b];
int j = b + 1;
int i = b;
for(;j != e + 1;++j){
if(a[j] <= x){ //是<=不是<
++i;
exchange(a[i],a[j]);
}
}
exchange(a[b],a[i]);//第一次写的时候漏掉了这一句,还怀疑了下自己参数传递是不是学差了
return i;
}
void qs(int a[],int b,int e){
int q = 0;
if(b < e){
q = par(a,b,e);
qs(a,b,q - 1);
qs(a,q + 1,e);
}
}
int main()
{
qs(a,0,0);
for(int i = 0;i != 1;++i)
cout << a[i] << ' ';
cout << endl;
return 0;
}