提交记录 18925


用户 题目 状态 得分 用时 内存 语言 代码长度
user1 1001. 测测你的排序 Compile Error 0 0 ns 0 KB C++ 544 B
提交时间 评测时间
2023-01-25 01:05:37 2023-01-25 01:05:38
#include <algorithm>

template<int N>
void sortB(unsigned *a, int n) {
	if (N<0) return;
	if (n<256) {
		std::sort (a, a+n);
		return;
	}
	int cnt[16] = {};
	for (int i=0; i<n; ++i) cnt[(a[i]>>4*N)&15]++;
	unsigned *begin[16], *end[16];
	for (int i=0; i<16; ++i) {
		begin[i] = a;
		end[i] = a+=cnt[i];
	}
	for (int i=0; i<15; ++i) {
		while (begin[i] != end[i]) {
			std::swap(*begin[i], *--end[(*begin[i]>>4*N)&15]);
		}
	}
	for (int i=0; i<16; ++i) {
		sortB<N-1> (begin[i], cnt[i]);
	}
}

void sort(unsigned *a, int n) {
	sortB<7>(a, n);
}

CompilationN/AN/ACompile ErrorScore: N/A


Judge Duck Online | 评测鸭在线
Server Time: 2025-09-16 10:25:00 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠