1.2 排序算法的分类

排序算法通常可以按照以下几个维度进行分类:

按时间复杂度分类:

  • O(n²) 级别:冒泡排序、选择排序、插入排序、鸡尾酒排序
  • O(n log n) 级别:快速排序、归并排序、堆排序、希尔排序
  • O(n) 级别(特殊条件下):桶排序、基数排序、计数排序
  • 非确定性/概率性:猴子排序

按空间复杂度分类:

  • 原地排序:冒泡排序、选择排序、插入排序、快速排序、堆排序、希尔排序、鸡尾酒排序
  • 非原地排序:归并排序、桶排序、基数排序

按稳定性分类:

  • 稳定排序:冒泡排序、插入排序、归并排序、基数排序、桶排序
  • 不稳定排序:选择排序、快速排序、堆排序、希尔排序

按比较方式分类:

  • 基于比较的排序:冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、鸡尾酒排序、猴子排序
  • 非比较排序:桶排序、基数排序、计数排序