当前位置:网站首页>排序5-计数排序
排序5-计数排序
2022-07-28 15:27:00 【世_生】
前言

一、计数排序
思想:计数排序又称鸽巢原理,是对哈希表直接定址法变形的应用。操作步骤:
- 统计相同元素出现的个数
- 根据统计的结果将序列回收到原来的序列中
绝对映射:
细节:
(1):当数组中的最大值较大,且数组中的最小值也较大,那么我们开辟B空间,就会有很大的浪费。
所以相对映射来了:
代码:(几处细节的处理要看仔细)
void CountSort(int* a,int n)
{
// 选择出最大值,最小值
int i = 0,min = a[0],max = a[0];
for(i = 0;i < n;i++)
{
if(a[i] > max)
max = a[i];
if(a[i] < min)
min = a[i];
}
int range = max - min + 1;
int* count = (int*)malloc(sizeof(int) * range);
memset(count,0,sizeof(int) * range);
//计数
for(i = 0;i < n;i++)
{
count[a[i] -min]++;
}
int j = 0;
//排序
for(i = 0;i < range;i++)
{
while(count[i]--)
{
a[j++] = i + min;
}
}
}
总结:
- 计数排序只能用于整数排序
- 计数排序在数据范围集中时的效率高,应用场景有限
- 时间复杂度:O(N~range)
- 空间复杂度:O(range)
- 稳定性:稳定
我们下期见。
边栏推荐
猜你喜欢

I can only sell the company after the capital has been "cut off" for two years

Dynamic programming -- digital statistics DP

正大杯黑客马拉松数据解析竞赛

SCI scientific paper writing Growth Camp (full version)

About the web docking pin printer, lodop uses

QT打包

加速投资的小红书,“病急乱投医”?

Laser rangefinder non-contact surface crack monitor

8051 series MCU firmware upgrade IAP

Vm501 development kit development version single vibrating wire sensor acquisition module geotechnical engineering monitoring
随机推荐
资本「断供」两年,我只能把公司卖了
Pop up layer prompt in the background
Wei Jianjun couldn't catch up with Li Shufu by riding a BMW
我在上海偶遇数字凤凰#坐标徐汇美罗城
五舅的思考
mysql 查看事件状态语句和修改办法
Wechat official account to obtain material list
2021-04-02
I can only sell the company after the capital has been "cut off" for two years
学会使用MySQL的Explain执行计划,SQL性能调优从此不再困难
ANSYS二次开发 - MFC界面调用ADPL文件
Sdl2 concise tutorial (4): using SDL_ Image library importing pictures
使用js直传oss阿里云存储文件,解决大文件上传服务器限制
Detailed explanation of QT qstring
小程序中的分页查询
Notes on October 22, 2021
KubeEdge发布云原生边缘计算威胁模型及安全防护技术白皮书
KubeEdge发布云原生边缘计算威胁模型及安全防护技术白皮书
加速投资的小红书,“病急乱投医”?
ANSA二次开发 - Apps和ANSA插件管理