#include #include #define MIN(a,b) ((a)<(b)?(a):(b)) void msort(int *a,int n,int *merge){ if(n<=16){ int i,j; for(i=1;i=0 && p>shift)&0x01) == ((array[n-1]>>shift)&0x01)) return calc(array,n,shift-1); int l=0; int r=n; while(l+1>shift)&0x01){ r=m; } else { l=m; } } return (1<