学习基数排序之前首先学习计数排序
来源:互联网 发布:厦门国家会计学院知乎 编辑:程序博客网 时间:2024/06/05 19:03
学习基数排序之前首先学习计数排序。
计数排序假设每个元素都是在0到k之间的一个整数。
基数排序的基本思想,对于每个元素x,如果我们知道了小于x的元素的个数,就可以确定输出数组中元素x的位置,那么直接将元素x放到输出数组中。比如有3小于x的元素,那在输出数组中,x肯定位于第4个位置。
计数排序的算法用伪代码描述为:
17COUNTING-SORT(A,k)
// 初始化数组C
for i=0 to k
C[i]=0
// 统计A[j]元素出现的次数,保存到C数组中
for j=0 to A.length
C[A[j]]=C[A[j]]+1
// 统计小于等于A[j]元素的个数
for k=0 to k
C[K]=C[K-1]+C[K]
// 将A中的元素放在B中正确的位置
for i=A.length to 0
B[C[A[i]]-1]=A[i]
C[A[i]]=C[A[i]]-1
注:由于有可能有相同元素存在,所以,每次将A[i]元素放入B数组中,都要将C[A[j]]的值减一,这样当遇到下一个值等于A[j]的元素时,该元素就能放在输出数组中A[j]的前面。
0 0
- 学习基数排序之前首先学习计数排序
- 算法导论学习笔记(六):计数排序与基数排序
- 算法学习之排序学习之基数排序,计数排序及java实现
- 【算法学习】线性时间排序-计数排序、基数排序和桶排序详解与编程实现
- 【算法学习】线性时间排序-计数排序、基数排序和桶排序详解与编程实现
- [算法学习]线性时间排序:计数排序、基数排序和桶排序
- 计数排序,基数排序
- 计数排序和基数排序
- 计数排序-基数排序
- 计数排序和基数排序
- 基数排序和计数排序
- 计数排序和基数排序
- 计数排序+基数排序
- 计数排序和基数排序
- 基数排序/计数排序
- 计数排序和基数排序
- 基数排序,计数排序
- 计数排序和基数排序
- c# 一致性HASH详解
- Timer和TimerTask
- 十个适合快速学习的C开源项目
- 用source tree操作git的操作注意事项
- MAC系统重置root密码
- 学习基数排序之前首先学习计数排序
- NIO-java
- 水水的哈希函数题解
- UITableView 滚动到指定行cell
- MySQL的备份方式
- mac通过终端连接linux操作系统
- css3基础知识第五章实战训练
- 【tomcat】tomcat配置ssl的蛋疼事
- Mysql5.7.9无法启动,服务没有报告任何错误,NET HELPMSG 3534