快速排序思想
代码
#include<iostream>
using namespace std;
void QuickSort(int a[],int left,int right) {
if(left<right) {
int l=left,r=right,tmp=a[left];
while(l<r) {
while(l<r&&a[r]>tmp)r--; //使tmp<a[r]
a[l]=a[r];
while(l<r&&a[l]<=tmp)l++; //使tmp>=a[l]
a[r]=a[l];
}
a[l]=tmp; //此时tmp最终位置确定
QuickSort(a,left,l-1); //对a[l]左侧的数据进行快速排序
QuickSort(a,l+1,right); //对a[l]右侧的数据进行快速排序
}
}
int main() {
int n;
cin>>n;
int a[100010];
for(int i=0; i<n; i++) {
cin>>a[i];
}
QuickSort(a,0,n-1);
for(int i=0; i<n; i++) {
if(i!=0)cout<<" ";
cout<<a[i];
}
return 0;
}