#include c++.h>
using namespace std;
const int Max=100000+10;
int a[Max];
int Partition(int* a,int l,int r) {
int p=(int)((double)rand()/RAND_MAX*(r-l+1)+l);
swap(a[p],a[l]);
int temp=a[l];
while(l<r) {
while(l<r&&temp<a[r]) r--;
a[l]=a[r];
while(l<r&&a[l]<=temp) l++;
a[r]=a[l];
}
a[l]=temp;
return l;
}
void quickSort(int* a,int l,int r) {
if(l<r) {
int pos=Partition(a,l,r);
quickSort(a,l,pos-1);
quickSort(a,pos+1,r);
}
}
int main() {
int n;
while(cin>>n) {
srand((unsigned)time(NULL));
int l=0,r=n-1;
for(int i=0; i<n; i++) {
cin>>a[i];
}
quickSort(a,l,r);
for(int i=0; i<n; i++) {
cout<<a[i]<<" ";
}
cout<<endl;
}
return 0;
}
快速排序
最新推荐文章于 2024-11-05 17:16:24 发布