/*某种排序*/ #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; }
有点类似于快速排序,但稍微改了一下;