排序算法介绍
基本介绍
排序也称为排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。
排序的分类
内部排序
指将需要处理的所有数据都加载到内部存储器中进行排序
外部排序
数据量过大,无法全部加载到内存中,需要借助外部存储进行排序
常见的排序算法分类
常用的排序算法对比
排序算法 | 平均时间复杂度 | 最好情况 | 最坏情况 | 空间复杂度 | 排序方式 | 稳定性 |
---|---|---|---|---|---|---|
冒泡排序 | O(n^2) | O(n) | O(n^2) | O(1) | 不占用额外内存 | 稳定 |
选择排序 | O(n^2) | O(n^2) | O(n^2) | O(1) | 不占用额外内存 | 不稳定 |
插入排序 | O(n^2) | O(n) | O(n^2) | O(1) | 不占用额外内存 | 稳定 |
序 | O(n log n) | O(n log2 n) | O(n log2 n) | O(1) | 不占用额外内存 | 不稳定 |
排序 | O(n log n) | O(n log n) | O(n log n) | O(n) | 占用额外内存 | 稳定 |
序 | O(n log n) | O(n log n) | O(n^2) | O(log n) | 不占用额外内存 | 不稳定 |
序 | O(n log n) | O(n log n) | O(n log n) | O(1) | 不占用额外内存 | 不稳定 |
序 | O(n + k) | O(n + k) | O(n + k) | O(K) | 占用额外内存 | 稳定 |
序 | O(n + k) | O(n + k) | O(n^2) | O(n + k) | 占用额外内存 | 稳定 |
序 | O(n * k) | O(n * k) | O(n * k) | O(n + k) | 占用额外内存 | 稳定 |
- 稳定是指:若a原本在b前面,经过排序后a仍然在b前面
- 内排序:所有操作在内存中完成
- 外排序:由于数据过大,因此把数据放在磁盘中,排序通过磁盘和内存的数据传输才能进行
- k:桶的个数