static void hyper_sort(int base,int number,void (*makesmaller)()) { int i; if (number==1) return; for (i=0;i<(number/2);i++) makesmaller(base+i,base+i+((number+1)/2)); hyper_sort(base+number/2,(number+1)/2,makesmaller); hyper_sort(base,number - (number+1)/2,makesmaller); } static void batchers_sort(int baseP,int N,void (*makesmaller)()) { int p, initq, q, r, d, x; for (p=1; (1<<(p+1))<=N+1; p++); p = 1<
0; p/=2)
{
q = initq;
r = 0;
d = p;
do
{
for (x=0; x