常见排序算法总结
来源:互联网 发布:夜狸猫事件 知乎 编辑:程序博客网 时间:2024/06/06 21:00
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。
我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题。
上面的这张图来自一个PPT。它概括了数据结构中的所有常见的排序算法。现在有以下几个问题:
1、每个算法的思想是什么?
2、每个算法的稳定性怎样?时间复杂度是多少?
3、在什么情况下,算法出现最好情况 or 最坏情况?
4、每种算法的具体实现又是怎样的?
这个是排序算法里面最基本,也是最常考的问题。详细算法介绍见其他排序算法的帖子。
排序算法总结:
(1) 一般来说,当数据规模较小时,应选择直接插入排序或者冒泡排序。任何排序算法在数据量小时基本体现不出差距。
(2) 考虑数据的类型,比如全部是正整数时,应该考虑使用桶排序。
(3) 考虑数据已经有序,快速排序是一种不稳定的排序(当然可以改进)。对于大部分排好序的数据,快速排序会浪费大梁不必要的步骤。我们说快速排序好,是指大梁随机数据下,使用快速排序的效果最理想,而不是指所有情况。
0 0
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结 .
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- 常见排序算法总结
- Curl命令GET/POST请求
- 为什么谷歌要执行严格的代码编写规范
- kernel 异常重启的log输出
- CentOS7 上学习使用docker
- burpsuite,对web网站进行Intruder攻击
- 常见排序算法总结
- laravel: command not found问题解决方案
- CSS3动画库 —— Animate.css
- 数据的加密与解密,MD5,MD2,SHA
- 聊聊高并发系统之降级特技
- poj 1376 Robot 广搜
- eclipse OutOfMemoryError设置
- @Override的作用
- 坐得越久 死得越快