void sort(unsigned *a, int n)
{
unsigned b[200000000],*rs[256], t0[256], t1[256], t2[256], t3[256];
unsigned *p, i, x;
for (i = 0; i < 256; ++i)
{
t0[i] = 0;
t1[i] = 0;
t2[i] = 0;
t3[i] = 0;
}
for (i = 0; i < n;)
{
++t0[a[i] & 255], ++t1[a[i] >> 8 & 255], ++t2[a[i] >> 16 & 255], ++t3[a[i] >> 24], ++i;
++t0[a[i] & 255], ++t1[a[i] >> 8 & 255], ++t2[a[i] >> 16 & 255], ++t3[a[i] >> 24], ++i;
++t0[a[i] & 255], ++t1[a[i] >> 8 & 255], ++t2[a[i] >> 16 & 255], ++t3[a[i] >> 24], ++i;
++t0[a[i] & 255], ++t1[a[i] >> 8 & 255], ++t2[a[i] >> 16 & 255], ++t3[a[i] >> 24], ++i;
}
p = b - 1;
for (i = 0; i < 256; ++i)
rs[i] = p, p += t0[i];
for (i = 0; i < n; i += 8)
{
p = a + i;
*++rs[p[0] & 255] = p[0];
*++rs[p[1] & 255] = p[1];
*++rs[p[2] & 255] = p[2];
*++rs[p[3] & 255] = p[3];
*++rs[p[4] & 255] = p[4];
*++rs[p[5] & 255] = p[5];
*++rs[p[6] & 255] = p[6];
*++rs[p[7] & 255] = p[7];
};
p = a - 1;
for (i = 0; i < 256; ++i)
rs[i] = p, p += t1[i];
for (i = 0; i < n; i += 8)
{
p = b + i;
*++rs[p[0] >> 8 & 255] = p[0];
*++rs[p[1] >> 8 & 255] = p[1];
*++rs[p[2] >> 8 & 255] = p[2];
*++rs[p[3] >> 8 & 255] = p[3];
*++rs[p[4] >> 8 & 255] = p[4];
*++rs[p[5] >> 8 & 255] = p[5];
*++rs[p[6] >> 8 & 255] = p[6];
*++rs[p[7] >> 8 & 255] = p[7];
};
p = b - 1;
for (i = 0; i < 256; ++i)
rs[i] = p, p += t2[i];
for (i = 0; i < n; i += 8)
{
p = a + i;
*++rs[p[0] >> 16 & 255] = p[0];
*++rs[p[1] >> 16 & 255] = p[1];
*++rs[p[2] >> 16 & 255] = p[2];
*++rs[p[3] >> 16 & 255] = p[3];
*++rs[p[4] >> 16 & 255] = p[4];
*++rs[p[5] >> 16 & 255] = p[5];
*++rs[p[6] >> 16 & 255] = p[6];
*++rs[p[7] >> 16 & 255] = p[7];
};
p = a - 1;
for (i = 0; i < 256; ++i)
rs[i] = p, p += t3[i];
for (i = 0; i < n; i += 8)
{
p = b + i;
*++rs[p[0] >> 24] = p[0];
*++rs[p[1] >> 24] = p[1];
*++rs[p[2] >> 24] = p[2];
*++rs[p[3] >> 24] = p[3];
*++rs[p[4] >> 24] = p[4];
*++rs[p[5] >> 24] = p[5];
*++rs[p[6] >> 24] = p[6];
*++rs[p[7] >> 24] = p[7];
};
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 51.769 ms | 763 MB + 352 KB | Accepted | Score: 34 | 显示更多 |
| Testcase #2 | 1.083 s | 1144 MB + 440 KB | Accepted | Score: 33 | 显示更多 |
| Testcase #3 | 2.117 s | 1525 MB + 924 KB | Accepted | Score: 33 | 显示更多 |