快速排序

#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;
}

  

posted @ 2024-04-20 09:51  fushuxuan1  阅读(7)  评论(0)    收藏  举报