此博客用于个人学习,来源于算法的书籍和网上的资料,对知识点进行一个整理。
1. 算法分类:
十种常见的排序算法你可以分为两大类:
- 比较类算法:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。
- 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。
2. 算法复杂度:
3. 索引:
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 归并排序
- 快速排序
- 堆排序
- 计数排序
- 桶排序
- 基数排序