常用排序算法总结
2017-08-16 16:01
295 查看
排序算法分为内部排序和外部排序,内部排序是数据记录在内存中直接进行排序,而外部排序是因数据量大(内存中无法容纳),需要访问外存进行排序。通常所说的排序主要是指内部排序,常见的内部排序算法有:冒泡排序、直接插入排序、简单选择排序、希尔排序、堆排序、归并排序、快速排序、表排序和基数排序等。
复杂度分析:
复杂度分析:
排序算法 | 平均时间复杂度 | 最坏情况下时间复杂度 | 额外空间复杂度 | 稳定性 |
---|---|---|---|---|
冒泡排序 | O(N2) | O(N2) | O(1) | 稳定 |
直接插入排序 | O(N2) | O(N2) | O(1) | 稳定 |
简单选择排序 | O(N2) | O(N2) | O(1) | 不稳定 |
希尔排序 | O(Nd) | O(N2) | O(1) | 不稳定 |
堆排序 | O(NlogN) | O(NlogN) | O(1) | 不稳定 |
归并排序 | O(NlogN) | O(NlogN) | O(N) | 稳定 |
快速排序 | O(NlogN) | O(N2) | O(logN) | 不稳定 |
基数排序 | O(P(N+B)) | O(P(N+B)) | O(N+B) | 稳定 |