快速排序
//快速排序
//将第一个数据作为基准数,根据基准数将数据分为两部分,大的分在右边,小的分在左边
//找到基准数位置后,进行左递归和右递归重复上述操作
#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号