算法1

排序

快排

#include<cstdio>
#include<iostream>
#include<algorithm>

using namespace std;
const int N=1e6+10;
int num[N];
int n;
void quick_sort(int q[],int l,int r){
    if(l>=r) return;
    int x=num[l+r>>1],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(num,l,j);
    quick_sort(num,j+1,r);
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        scanf("%d",&num[i]);
    }
    quick_sort(num,0,n-1);
    for(int i=0;i<n;i++) printf("%d ",num[i]);
    return 0;
} 
posted @ 2022-05-12 20:02  open520  阅读(28)  评论(0)    收藏  举报