给定你一个长度为 n 的整数数列。
请你使用快速排序对这个数列按照从小到大进行排序。
并将排好序的数列按顺序输出。
输入共两行,第一行包含整数 n。
第二行包含 n个整数(所有整数均在 1 ~10^9 范围内),表示整个数列。
输出共一行,包含 n个整数,表示排好序的数列。
1 ~ 100000
5 3 1 2 4 5\
1 2 3 4 5
1 #include<iostream> 2 using namespace std; 3 4 const int N = 1e6+10; 5 int q[N]; 6 7 void quick_sort(int q[],int l,int r){ 8 if(l>=r) return; 9 10 int i=l-1,j=r+1,x=q[l+r>>1]; 11 while(i<j){ 12 do i++;while(q[i]<x); 13 do j--;while(q[j]>x); 14 if(i<j) swap(q[i],q[j]); 15 } 16 17 quick_sort(q,l,j); 18 quick_sort(q,j+1,r); 19 } 20 21 int main(){ 22 int n; 23 scanf("%d",&n); 24 for(int i=0;i<n;i++) scanf("%d",&q[i]); 25 quick_sort(q,0,n-1); 26 for(int i=0;i<n;i++) printf("%d ",q[i]); 27 }