提交记录 5588
| 用户 |
题目 |
状态 |
得分 |
用时 |
内存 |
语言 |
代码长度 |
| caesar |
1001. 测测你的排序 |
Accepted |
100 |
799.251 ms |
781268 KB |
C++11 |
1.36 KB |
| 提交时间 |
评测时间 |
| 2018-08-30 14:58:53 |
2020-08-01 00:19:48 |
#if defined(__GNUC__) && !defined(__clang__)
#define O2 __attribute__((optimize("-O2")))
#else
#define O2
#endif
#include <stdio.h>
#include <stdlib.h>
#define BUCKET_MOD (0xFFU)
#define BUCKET_SIZE (BUCKET_MOD + 1U)
typedef unsigned sort_t;
O2 void sort(sort_t *data, int n) {
unsigned int i;
unsigned int k1[BUCKET_SIZE] = {0}, k2[BUCKET_SIZE] = {0}, k3[BUCKET_SIZE] = {0}, k4[BUCKET_SIZE] = {0};
sort_t *arr = (sort_t*)malloc(sizeof(data[0]) * n), *p;
for (p = data + n; p > data; ) {
register sort_t tmp = *(--p);
++k4[tmp & BUCKET_MOD];
++k3[(tmp >> 8) & BUCKET_MOD];
++k2[(tmp >> 16) & BUCKET_MOD];
++k1[(tmp >> 24) & BUCKET_MOD];
}
for (i = 1; i < BUCKET_SIZE; ++i) {
k4[i] += k4[i - 1];
k3[i] += k3[i - 1];
k2[i] += k2[i - 1];
k1[i] += k1[i - 1];
}
for (p = data + n; p > data; ) {
register sort_t tmp = *(--p);
arr[--k4[tmp & BUCKET_MOD]] = tmp;
}
for (p = arr + n; p > arr; ) {
register sort_t tmp = *(--p);
data[--k3[(tmp >> 8) & BUCKET_MOD]] = tmp;
}
for (p = data + n; p > data; ) {
register sort_t tmp = *(--p);
arr[--k2[(tmp >> 16) & BUCKET_MOD]] = tmp;
}
for (p = arr + n; p > arr; ) {
register sort_t tmp = *(--p);
data[--k1[(tmp >> 24) & BUCKET_MOD]] = tmp;
}
free(arr);
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 799.251 ms | 762 MB + 980 KB | Accepted | Score: 100 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-04-11 15:27:55 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠