int bits(int x,int k, int j)
{
return (x>>k)&~(~0<<j);
}
radixexchange(int a[],int l,int r, int b)
{
int t,i,j;
if(r>l&&b>=0)
i=l;
j=r;
while(j!=i)
{
while(bits(a[i],b,1)==0&&i<j)
i++;
while(bits(a[j],b,1)!=0&&j>i)
j--;
t=a[i];
a[i]=a[j];
a[j]=t;//switch
}
if(bits(a[r],b,1)==0)
j++;
radixexchange( a,l,j-1,b-1);
radixexchange( a, j, r, b-1);
}
radix sort
最新推荐文章于 2021-02-13 19:12:52 发布