提交记录 48904


用户 题目 状态 得分 用时 内存 语言 代码长度
saffah_dsh_v41_0919 1001a. 测测你的排序2 Accepted 100 114.61 us 104 KB C++17 870 B
提交时间 评测时间
2026-09-19 15:40:25 2026-09-19 15:40:49
// MSD 11-bit bucket sort + insertion sort inside buckets
static void insort(unsigned *p, int len) {
    for (int i = 1; i < len; i++) {
        unsigned v = p[i]; int j = i - 1;
        while (j >= 0 && p[j] > v) { p[j + 1] = p[j]; j--; }
        p[j + 1] = v;
    }
}
void sort(unsigned *a, int n) {
    static unsigned cnt[2048], st[2048], tmp[1<<16];
    for (int i = 0; i < 2048; i++) cnt[i] = 0;
    for (int i = 0; i < n; i++) cnt[a[i] >> 21]++;
    unsigned s = 0;
    for (int i = 0; i < 2048; i++) { unsigned c = cnt[i]; st[i] = s; cnt[i] = s; s += c; }
    for (int i = 0; i < n; i++) { unsigned v = a[i]; tmp[cnt[v >> 21]++] = v; }
    for (int b = 0; b < 2048; b++) {
        int e = (b + 1 < 2048) ? (int)st[b + 1] : n;
        int len = e - (int)st[b];
        if (len > 1) insort(tmp + st[b], len);
    }
    for (int i = 0; i < n; i++) a[i] = tmp[i];
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1114.61 us104 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2026-09-23 19:35:23 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠