folstfolst
全部博文(64)
2010年(64)
Phyllis6
分类: C/C++
2010-01-26 14:05:04
void RadixSort(int Num[],int N,int d){ int radix = 1; int i,j; for(i=0;i<d;i++){ CountingSort(Num,N,radix); radix *= BASE; } } void CountingSort(int Num[],int N,int d){ int i,j; memset(C,0,sizeof(C) ); for(i=1;i<=N;i++) C[GetBit(Num[i],d) ]++; for(i=1;i<10;i++) C[i] += C[i-1]; for(i=N;i>=1;i--){ R[C[GetBit(Num[i],d) ] ]=Num[i]; C[GetBit(Num[i],d) ]--; } for(i=1;i<=N;i++) Num[i] = R[i]; } int GetBit(int N,int d){ return (N/d)%10; }
上一篇:计数排序
下一篇:开放寻址法的几种实现
登录 注册