radixsort.h

来自「里面包含各种数据结构方面的知识,如链表,树,图等 含有vc代码」· C头文件 代码 · 共 29 行

H
29
字号
#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 + =
减小字号Ctrl + -
显示快捷键?