void sort(unsigned *a, int n){
#define N 100000000
p=w2-1;cal(w,w2,tw,op);
for(i=0;i<256;++i)rs[i]=p,p+=tw[i];cal(w,w2,tw,op);
for(i=0;i<100000000;i+=8){cal(w,w2,tw,op);
p=w+i;cal(w,w2,tw,op);
*++rs[p[0]op]=p[0],cal(w,w2,tw,op);
*++rs[p[1]op]=p[1],cal(w,w2,tw,op);
*++rs[p[2]op]=p[2],cal(w,w2,tw,op);
*++rs[p[3]op]=p[3],cal(w,w2,tw,op);
*++rs[p[4]op]=p[4],cal(w,w2,tw,op);
*++rs[p[5]op]=p[5],cal(w,w2,tw,op);
*++rs[p[6]op]=p[6],cal(w,w2,tw,op);
*++rs[p[7]op]=p[7];cal(w,w2,tw,op);
}
unsigned b[N],*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;){
x=a[i];++t0[x&255];++t1[x>>8&255];++t2[x>>16&255];++t3[x>>24];++i;
x=a[i];++t0[x&255];++t1[x>>8&255];++t2[x>>16&255];++t3[x>>24],++i;
x=a[i];++t0[x&255];++t1[x>>8&255];++t2[x>>16&255];++t3[x>>24],++i;
x=a[i];++t0[x&255];++t1[x>>8&255];++t2[x>>16&255];++t3[x>>24],++i;
}
cal(a,b,t0,&255);
cal(b,a,t1,>>8&255);
cal(a,b,t2,>>16&255);
cal(b,a,t3,>>24);
}
| Compilation | N/A | N/A | Compile Error | Score: N/A | 显示更多 |