// Radix Exchange Sort of unsigned integer array. typedef unsigned long int ui; void rdx(ui* b, ui* e, ui bit){ // Radix Exchange Sort if(b>1); rdx(E, e, bit>>1);}} #include #include int main(){ const int n = 328025; ui w[n]; ui s=0, t=0; {int j=n; while(j--) s += (w[j] = random() + (random()<<33));} // printf("%lX %016lX\n", w[7], 1L<<63); rdx(w, w+n-1, 1L<<63); // printf("%016lX %016lX\n", w[n-2], w[n-1]); {int j=n; while(j--) t += w[j];} if (s!=t) exit(printf("Futz!!\n")); {int j=n-1; while(j--) if(w[j+1] < w[j]) exit(printf("Fizz!! %d\n", j));} printf("Good!!\n"); return 0;}