提交记录 22010


用户 题目 状态 得分 用时 内存 语言 代码长度
RainPPR 1001a. 测测你的排序2 Compile Error 0 0 ns 0 KB C++ 839 B
提交时间 评测时间
2024-07-28 15:58:05 2024-07-28 15:58:06
#include <algorithm>

using u32 = unsigned int;

void m_sort(u32 *l, u32 *r, u32 k = 128) {
    if (k == 128) {
        --r;
        k = 0;
        for (u32 *t = l; t <= r; ++t)
            k = max(k, std::__lg(*t));
    }
    if (l >= r) return;
    if (l == r - 1) {
        if (*l > *r) std::swap(*l, *r);
        return;
    }
    auto p = l, q = r;
    while (p <= q) {
        if ((*p >> k) & 1) {
            while (p < q && (*q >> k) & 1)
                --q;
            if (p == q) {
                if (k == 0) return;
                m_sort(l, p - 1, k - 1);
                m_sort(p, r, k - 1);
                return;
            }
            std::swap(*p, *q);
        }
        ++p;
    }
    if (k == 0) return;
    m_sort(l, q, k - 1);
    m_sort(q + 1, r, k - 1);
}

void sort(unsigned *a, int n) {
	m_sort(a, a + n);
}

CompilationN/AN/ACompile ErrorScore: N/A


Judge Duck Online | 评测鸭在线
Server Time: 2025-07-15 15:22:03 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠