forked from go/golangs_learn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.2 KiB
1.2 KiB
排序算法
-
引言
排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,各种集成的api已经帮我们省略了思考如何构建排序的时间,但如果我们从原理上出发,了解它们的实现机制,对我们学习算法还是十分有好处的。
-
排序分类
八大排序算法均属于内部排序。如果按照策略来分类,大致可分为:交换排序、插入排序、选择排序、归并排序和基数排序。如下图所示:
- 总结
- 关键词
- 冒泡排序
- 形如冒水泡(大数)
- 快速排序
- 归位(关于某值对称的数组)
- 递归
- 直接插入排序
- 扫描位置(指插入的位置)
- 希尔排序
- (优化)插入排序(缩小增量排序)
- 简单选择排序
- 扫描一遍(获取最小数)
- 对调位置
- 堆排序
- 建堆
- 交换值并向下调整
- 归并排序
- 将两个数组排有序
- 将两个数组归并到一起
- 基数排序
- 百数之内的排序
- 冒泡排序