c++实现基数排序
来源:互联网 发布:js 删除cookies 编辑:程序博客网 时间:2024/06/03 15:55
基数排序的主要思路是,将所有待比较数值(注意,必须是正整数)统一为同样的数位长度,数位较短的数前面补零.。然后, 从最低位开始, 依次进行一次稳定排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
比如这样一个数列排序: 342 58 576 356, 以下描述演示了具体的排序过程(红色字体表示正在排序的数位)
第一次排序(个位):
3 4 2
5 7 6
3 5 6
0 5 8
第二次排序(十位):
3 4 2
3 5 6
0 5 8
5 7 6
第三次排序(百位):
0 5 8
3 4 2
3 5 6
5 7 6
结果: 58 342 356 576
两个问题:
- 为什么要从低位开始向高位排序?
如果要从高位排序, 那么次高位的排序会影响高位已经排好的大小关系. 在数学中, 数位越高,数位值对数的大小的影响就越大.从低位开始排序,就是对这种影响的排序. 数位按照影响力从低到高的顺序排序, 数位影响力相同则比较数位值.
阅读全文
0 0
- 基数排序C语言实现
- 基数排序-C语言实现
- 基数排序 C语言实现
- 基数排序的C实现
- 基数排序-C语言实现
- 基数排序的C语言实现
- 基数排序及C语言实现
- 基数排序单链表实现(C语言)
- 基数排序C语言代码实现
- 基数排序C++实现
- 基数排序与桶排序C实现
- 排序算法C++&&Python实现---基数排序
- 基数排序(基于C语言的实现)
- 基数排序(C#)
- c 基数排序
- 基数排序(c)
- 桶排序升级之基数排序c语言实现10.1.2
- 基数排序 C语言数据结构
- 链表的原理及java实现
- J2EE进阶之javascript 四
- java.lang.OutOfMemoryError: GC overhead limit exceeded解决办法
- 30分钟撸出一个线程安全的YYModel
- java通过ssl连接LDAP服务器(包括LDAP服务器搭建、openssl数字证书生成、openldap服务器配置启动)
- c++实现基数排序
- win+linux 搭建Maven环境
- C++ bitset对象
- 女性成为未来世界的主宰 需要做到雌雄同体、玩转黑科技?
- Windows 7 系统QT程序发布
- 面试题52:构建乘积数组
- Mysql存储过程的基本结构
- 图像处理与计算机视觉:基础,经典以及最近发展
- NEFU 517 计算幂 二分优化