在内部排序算法中,主要分为插入排序、选择排序、交换排序、归并排序四大类。
插入排序类: 直接插入排序、直接插入排序的升级版希尔排序;
选择排序类:简单选择排序、简单选择的升级版堆排序;
交换排序类:冒泡排序、冒泡排序的升级版快速排序;
归并排序类:归并排序。
下面为七种内部排序算法指标对比情况:
排序方法 | 平均情况 | 最好情况 | 最坏情况 | 辅助空间 | 稳定性 | 简单性 |
冒泡排序 | O(n2) | O(N) | O(n2) | O(1) | 稳定 | 简单 |
简单选择排序 | O(n2) | O(N) | O(n2) | O(1) | 稳定 | 简单 |
直接插入排序 | O(n2) | O(N) | O(n2) | O(1) | 稳定 | 简单 |
希尔排序 | O(nlogn)—O(n2) | O(N1.3) | O(n2) | O(1) | 不稳定 | 改进 |
堆排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(1) | 不稳定 | 改进 |
归并排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(n) | 稳定 | 改进 |
快速排序 | O(nlogn) | O(nlogn) | O(N2) | O(logn)--O(n) | 不稳定 | 改进 |