下面从稳定性、时间复杂度、空间复杂度对冒泡、选择、插入、快速、希尔、堆、归并、基数排序算法做一个简单的总结:
排序策略 | 排序算法 | 稳定性 | 平均时间复杂度 | 空间复杂度 |
交换排序 | 稳定 | O(n2) | O(1) | |
不稳定 | O(nlogn) | O(1) | ||
选择排序 | 不稳定 | O(n2) | O(1) | |
不稳定 | O(nlogn) | O(1) | ||
插入排序 | 稳定 | O(n2) | O(1) | |
不稳定 | O(n1.f) 0=<f<=9 | O(1) | ||
归并排序 | 稳定 | O(nlogn) | O(n) | |
分配排序 | 稳定 | O(d(n+r)) r为关键字的取值范围 | O(n+r*n) |