内部排序算法性能小结
内部排序按排序过程中依据的不同原则,则大致可分为:
- 插入排序:从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列中的正确位置上的排序方法。
- 交换排序:当每两个元素比较出现逆序时,就相互交换位置的排序方法。
- 选择排序:从未排序序列中挑选元素,并将其放入已排序序列的一端的方法。
- 归并排序:依次将每两个相邻的有序表合并成一个有序表的排序方法。
-
基数排序:借助多关键字排序的思想对单逻辑关键字进行排序的方法。
其中插入排序、交换排序、选择排序又分别有不同的排序方法:
各种排序算法所对应的时间复杂度、空间复杂度及排序稳定性如下表:
| 排序方法 | 平均时间 | 辅助空间 | 稳定性 |
|---|---|---|---|
| 直接插入排序 | O() | O(1) | 稳定 |
| 折半插入排序 | O() | O(1) | 稳定 |
| 希尔排序 | O() | O(1) | 不稳定 |
| 起泡排序 | O() | O(1) | 稳定 |
| 快速排序 | O() | O() | 不稳定 |
| 简单选择排序 | O() | O(1) | 不稳定 |
| 堆排序 | O() | O(1) | 不稳定 |
| 归并排序 | O() | O(n) | 稳定 |
| 基数排序 | O() | O(rd) | 稳定 |
今天的排序算法小结就先写到这里,有许多不足之处,有待以后改进吧!