算法分析之桶排序
来源:互联网 发布:招行一金通软件下载 编辑:程序博客网 时间:2024/06/06 19:53
概述
桶排序示意图(当然这里只是简单的示例,真正的桶排序比这个复杂):
维基百科介绍: 桶排序
实现思路:
1. 设置固定空桶数2. 将数据放到对应的空桶中3. 将每个不为空的桶进行排序4. 拼接不为空的桶中的数据,得到结果
简单示例:
BucketSort
算法分析:
时间复杂度:
1. 将数据装入桶,需要N次循环 2. 之后排序,需要M次循环 3. 假设使用比较先进的排序算法,需要时间复杂度为O(N*logN) 4. 平均时间复杂度为线性的O(N+C),其中C=N*(logN-logM) 5. 最小时间复杂度O(N),此时 M=N
空间复杂度:
M个桶的额外空间,以及N个元素的额外空间,O(N+M)
稳定性:
一般来说桶排序是稳定的
算法优化:
1. 桶排序的优化需要从排序上下功夫,尽量做到如下两点 2. N个数都符合均匀分布,每一个桶中有N/M个数据 3. 尽量的增大桶的数量,极限情况下每个桶只能得到一个数据,但是会增加空间复杂度
特点总结:
1. 桶排序是稳定的2. 桶排序是常见排序里最快的一种,比快排还要快…(大多数情况下)3. 桶排序非常快,但是同时也非常耗空间,(基本上是最耗空间的一种排序算法)
注意事项
桶排序是一个简单快速的排序,需要新建一个 大范围的数组,即Buckets,因此桶排序有其局限性,适合元素值集合并不大的情况。
参考文章:排序算法之桶排序的深入理解以及性能分析
最快最简单的排序算法:桶排序
阅读全文
0 0
- 算法分析之桶排序
- 算法分析之快速排序
- 排序算法之桶排序
- 排序算法之桶排序
- 排序算法之桶排序
- 排序算法之桶排序
- 排序算法 之 桶排序
- 排序算法之桶排序
- 排序算法之桶排序
- 排序算法之桶排序
- 排序算法之桶排序
- 面试总结之-排序算法分析
- 数据结构之排序算法性能分析比较
- 拓扑排序之变量序列算法分析
- 算法分析之冒泡,快速,选择排序
- 算法分析之——计数排序
- 排序算法之--桶排序/radix排序
- 数据结构和算法分析之排序算法--交换排序篇(冒泡排序和快速排序)
- 杭电acm1196 对0 ,1的界定控制输出
- 在cmd命令行使用sqlplus时的页面显示问题
- dup2重定向后的恢复
- C++之多维数组
- (六)Redux:带有删除线的列表_实例
- 算法分析之桶排序
- 剑指Offer面试题43n个骰子的点数(动态规划),面试题44扑克牌的顺子
- (七)Redux:为List增加过滤功能_实例
- HDU 6049 Sdjpx Is Happy 贪心 区间DP 从简单的情况着手思考
- linux下使用gtest框架进行c/c++单元测试
- (八)Redux:提取Component
- H5 学习笔记1
- 51nod 1092 回文字符串 LCS 或 区间dp
- (十)Redux:官方react-redux的初步使用(Provider组件、connect函数)