提交记录 4643


用户 题目 状态 得分 用时 内存 语言 代码长度
Halifuda 1001. 测测你的排序 Compile Error 0 0 ns 0 KB C++ 626 B
提交时间 评测时间
2018-07-27 10:54:05 2020-07-31 23:09:09
const int RDX 1024;
const int radix[]={0,10,20,30,40,50};
int count[RDX],bucket[100000000];
inline int getdigit(unsigned x,int i){
    return int((x>>radix[i])&(RDX-1));
}
void sort(unsigned *a,int n){
    int cnt=0,k=0;
    while(cnt<n){
        cnt=0;
        for(int i=0;i<RDX;i++) count[i]=0;
        for(int i=0;i<n;i++){
            count[getdigit(a[i],k)]+=1;
            if((RDX<<radix[k])>=a[i]) cnt+=1;
        }
        for(int i=0;i<RDX;i++) count[i]+=count[i-1];
        for(int i=n-1;i>=0;i--) bucket[--count[getdigit(a[i],k)]]=a[i];
        for(int i=0;i<n;i++) a[i]=bucket[i];
        k+=1;
    }
    return;
}

CompilationN/AN/ACompile ErrorScore: N/A


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-13 04:44:22 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠