某种排序

/*某种排序*/
#define Size 100
#include<iostream>
#include<algorithm>
using namespace std;
int a[Size];
int Find(int l,int r){
    if(r==l) return l;
    else{
        int x=a[l];//钉桩 
        while(a[r]>=x&&r>l) r--;
             swap(a[l],a[r]);
        while(a[l]<=x&&l<r) l++;
             swap(a[r],a[l]);
        Find(l,r); 
    }
} 
void Sort(int l,int r){
    if(r>l){
    int p=Find(l,r);
    
    Sort(l,p-1);
    Sort(p+1,r);
    return ;
    }//if
}
int main(){
    int i;
    int n;//length
    cout<<"请输入数组内元素个数:"<<endl; 
    cin>>n;
    for(i=0;i<n;i++)
       cin>>a[i];//输入数据
    Sort(0,n-1);
    for(i=0;i<n;i++)
       cout<<a[i]<<" ";//打印 
    return 0; 
}

有点类似于快速排序,但稍微改了一下;

posted @ 2020-03-02 16:55  //Mendax  阅读(132)  评论(0编辑  收藏  举报