📄 radix.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 + -