📄 radixsort.h
字号:
#include "LinQueue.h"
void RadixSort(DataType a[], int n, int m, int d)
//对对象a[0]--a[n-1]进行关键码为m位d进制整型数值的基数排序
//桶采用链式队列结构
{
int i, j, k, power = 1;
LinQueue<DataType> *tub = new LinQueue<DataType>[d];
//进行m次排序
for(i = 0; i < m; i++)
{
if(i == 0) power = 1;
else power = power *d;
//将对象按关键码第k位的大小放到相应的队列中
for(j = 0; j < n; j++)
{
k = a[j].key /power - (a[j].key /(power * d)) * d;
tub[k].Append(a[j]);
}
//顺序回收各队列中的对象
for(j = 0, k = 0; j < d; j++)
while(tub[j].NotEmpty())
a[k++] = tub[j].Delete();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -