//找一个数,大的移到右边,小的移到左边 #include <iostream> using namespace std; void b(n[5],i,j){ if(i<j) { int l=i,r=j; int m=a[i]; while(l!=r){ while((m<=a[r])&&(l!=r)) { r--; } while((m>=a[l])&&(l!=r)) { l++; } if(l<r){ swap(a[l],a[r]); } } swap(a[i],a[l]); b(n,i,l+1); b(n,l+1,j); } } int main(int argc, char** argv) { int a[]={4,2,1,8,5}; b(n,0,5); for(int k=0;k<5;k++) { cout<<a[k]<<" "; } return 0; }
标签:std,移到,++,void,namespace,&&,快速 From: https://www.cnblogs.com/hanxuyao/p/18147702