sort
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
int p[N];
void quick_sort(int l, int r){
if (l >= r) return;
int t = p[l + r >> 1], i = l - 1, j = r + 1; // t = p[ l + r + 1 >> 1]
while (i < j){
do i ++; while ( p[i] < t);
do j --; while ( p[j] > t);
if (i < j) swap(p[i], p[j]);
}
quick_sort(l, j), quick_sort(j + 1, r); // l, i - 1 i, r
}
int main(){
int n; cin >> n;
for (int i = 0; i < n; i ++) scanf("%d", &p[i]);
quick_sort(0, n - 1);
for (int i = 0; i < n; i ++) printf("%d ", p[i]);
}
最后更新于