快速排序

#include<iostream>
using namespace std;
int num[100010];

void quick_sort(int l , int r){
    if(l >= r) return;
    
    int mid = (l + r + 1) >> 1;
    int x = num[mid];
    
    int i = l - 1 ,j = r + 1;
    while(i < j){
        
        do i ++; while(num[i] < x);
        do j --; while(num[j] > x);
        if(i < j) swap(num[i] , num[j]);
    }
    
    quick_sort(l , i - 1);
    quick_sort(i , r);
    
}
int main(){
    int n;
    cin >> n;
    for(int i = 0 ; i < n ; i++) cin >> num[i];
    quick_sort(0 , n - 1);
    for(int i = 0 ; i < n ; i++) cout << num[i] << " ";
    
    return 0;
}
posted @ 2024-10-11 13:58  _l_x_y  阅读(2)  评论(0编辑  收藏  举报