⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 radix.h

📁 本代码实现了几乎所有的排序算法
💻 H
字号:
#include<iostream.h>

void RadixSort(int *Array, int size, int k, int rsize)
{
	int *count=new int[rsize]; //count[]用来统计桶中元素的个数 
	//int *p=new int[rsize];    //p[]用来记录桶中最后一个元素的位置(比实际位置均大1)
	int *temp=new int[size];

	for(int i=0,rtok=1; i<k; i++,rtok*=rsize)
	{
		for(int j=0;j<rsize;j++)//初始化各个桶中的元素个数
			count[j]=0;

		for(j=0;j<size;j++)//统计各个桶中的元素个数
			count[(Array[j]/rtok)%rsize]++;

		for(j=1;j<rsize;j++)//记录桶中最后一个元素的位置
			count[j]+=count[j-1];

		for(j=size-1;j>=0;j--)
			temp[--count[(Array[j]/rtok)%rsize] ]=Array[j];//关键句--分配部分

		for(j=0;j<size;j++)
			Array[j]=temp[j];//将临时数组中元素拷回原数组
		
		cout<<"数组第 "<<(i+1)<<" 次分配排序之后:"<<endl;
		for(j=0;j<size;j++)
			cout<<Array[j]<<"  ";
		cout<<endl;
	}
	delete []count;
	delete []temp;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -