各种排序算法时间、空间复杂度及稳定性

  1. 冒泡排序:时间复杂度 O(n^2),最坏时间复杂度O(n^2),空间复杂度 O(1),稳定。

  2. 选择排序:时间复杂度 O(n^2),最坏时间复杂度O(n^2),空间复杂度 O(1),不稳定。

  3. 插入排序:时间复杂度 O(n^2),最坏时间复杂度O(n^2),空间复杂度 O(1),稳定。

  4. 希尔排序:时间复杂度 O(nlogn)~O(n^2),最坏时间复杂度O(n^2)空间复杂度 O(1),不稳定。

  5. 归并排序:时间复杂度 O(nlogn),最坏时间复杂度O(nlogn),空间复杂度 O(n),稳定。

  6. 快速排序:时间复杂度 O(nlogn),最坏时间复杂度O(n^2),空间复杂度 O(logn)~O(n),不稳定。

  7. 堆排序:时间复杂度 O(nlogn),最坏时间复杂度O(nlogn),空间复杂度 O(1),不稳定。

  8. 计数排序:时间复杂度 O(n+k),最坏时间复杂度O(n),空间复杂度 O(k),稳定。

  9. 桶排序:时间复杂度 O(n+k),最坏时间复杂度O(n^2),空间复杂度 O(n+k),稳定。

  10. 基数排序:时间复杂度 O(d(n+k)),最坏时间复杂度O(nk),空间复杂度 O(n+k),稳定。

注意:n 表示数据规模,k 表示数据范围,d 表示数字位数。

标签: 、面试
  • 回复
隐藏