快速排序模板

发布时间 2023-10-31 15:50:03作者: shalins
#include <iostream>
using namespace std;
int n ;
const int N = 1e6 + 5;
int a[N];

void quick_sort(int a[], int l , int r ){
    if(l >= r) return;
   
    int  i =  l - 1, j = r + 1, x = a[l];
    while(i < j){
        do i++; while(a[i] < x);
        do j--; while(a[j] > x);
        if(i < j) swap(a[i], a[j]);
    }
    quick_sort(a, l, j);
    quick_sort(a, j + 1, r);
}

int main(){
    scanf("%d", &n);
    for(int i = 0; i < n; i++) scanf("%d", &a[i]);
    quick_sort(a, 0, n - 1);
    for(int i = 0 ;i < n; i++) printf("%d ", a[i]);
    return 0;
}