快速排序

//快速排序
//将第一个数据作为基准数,根据基准数将数据分为两部分,大的分在右边,小的分在左边
//找到基准数位置后,进行左递归和右递归重复上述操作 
#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  陈若麟  阅读(3)  评论(0编辑  收藏  举报