快速排序
#include <iostream>
using namespace std;
int n[]={6,3,5,8,9,10,7,34,89,2};
//一般将第一个数作为基准数,根据基准数将数据分为两部分,大的在右,小的在左
//找准位置后,进入左排序递归,右排序递归 ,重复以上操作
void ks(int n[10],int i,int j){
if(i<j){
int l=i,r=j;
int m=n[i];
while(l!=r){
while(n[r]>=m && l!=r){
r--;
}
while(n[l]<=m && l!=r){
l++;
}
if(l<r){
swap(n[l],n[r]);
}
}
swap(n[i],n[l]);
ks(n,i,l-1);
ks(n,l+1,j);
}
}
int main(){
ks(n,0,9);
for(int i=0;i<10;i++){
cout<<n[i]<<" ";
}
return 0;
}

浙公网安备 33010602011771号