题目描述
利用快速排序算法将读入的 N个数从小到大排序后输出。
输入格式
第 1 行为一个正整数 N,第 2 行包含 N 个空格隔开的正整数 a_i,为你需要进行排序的数,数据保证了 a_i 不超过 10^9。
输出格式
将给定的 N 个数从小到大输出,数之间空格隔开,行末换行且无空格。
输入输出样例
#include <bits/stdc++.h>
using namespace std;
void qsort(int, int);
int a[100000001];
void qsort(int l, int r){
int i, j, p, mid;
i = l;
j = r;
mid = a[(l + r) / 2];
do{
while(a[i] < mid){
i++;
}
while(a[j] > mid){
j--;
}
if(i <= j){
p = a[i];
a[i] = a[j];
a[j] = p;
i++;
j--;
}
}
while(i <= j);
if(l < j){
qsort(l, j);
}
if(i < r){
qsort(i, r);
}
}
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i];
}
qsort(1, n);
for(int i = 1; i <= n; i++){
cout << a[i] << " ";
}
cout << endl;
return 0;
}