1. 程式人生 > >普及組模板——快速排序

普及組模板——快速排序

class pac blog turn return www. 快速 pan include

題目:【模板】快速排序(洛谷_1177)

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
inline int read(){
    int x=0;char c=getchar();
    while(c>9||c<0)c=getchar();
    while(c>=0&&c<=9){x=(x<<1)+(x<<3)+c-0;c=getchar();}
    return
x; } const int N=100010,num=32767; inline int get(int x,int k){ if(!k)return x&num; return x>>15; } int a[N],b[N],c[num+1],n; void rsort(){ for(int k=0;k<=1;k++){ memset(c,0,sizeof(c)); for(int i=1;i<=n;i++)c[get(a[i],k)]++; for(int i=1;i<=num;i++)c[i]+=c[i-1
]; for(int i=n;i;i--)b[c[get(a[i],k)]--]=a[i]; for(int i=1;i<=n;i++)a[i]=b[i]; } } int main() { n=read(); for(int i=1;i<=n;i++)a[i]=read(); rsort(); for(int i=1;i<=n;i++)printf("%d ",a[i]); return 0; }

本文由Yzyet編寫,網址為www.cnblogs.com/Yzyet。非Yzyet同意,禁止轉載,侵權者必究。

普及組模板——快速排序