内部排序方法比较

综合对比

总结

排序方法平均时间最坏时间空间稳定性
直接插入O(n²)O(n²)O(1)稳定
折半插入O(n²)O(n²)O(1)稳定
希尔排序O(n¹·³)O(n²)O(1)不稳定
冒泡排序O(n²)O(n²)O(1)稳定
快速排序O(n log n)O(n²)O(log n)不稳定
简单选择O(n²)O(n²)O(1)不稳定
树形选择O(n log n)O(n log n)O(n)稳定
堆排序O(n log n)O(n log n)O(1)不稳定
归并排序O(n log n)O(n log n)O(n)稳定
基数排序O(d(n+k))O(d(n+k))O(n+k)稳定

选择建议

  • 数据量小:直接插入排序
  • 数据基本有序:直接插入排序或冒泡排序
  • 数据量大且对稳定性有要求:归并排序
  • 数据量大且对空间有要求:快速排序或堆排序
  • 关键字可拆分:基数排序

链接到

  • 上一个知识点:6.11 基数排序
  • 下一个知识点:无(本章最后一个知识点)