深夜再侃侃排序

排序的知識之前簡單的總結過了,也實現了7種排序,這裏搞點不一樣的。

1.有木有時間複雜度低於O(NlogN)的排序算法?

有。
之前說的下界O(NlogN)是針對基於比較的排序算法而言的,我們是可以不基於(或者不完全基於)比較來實現的。

2.重新劃分一下排序算法的時間複雜度吧

  • O(N^2)
    • 冒泡排序
    • 簡單選擇排序
    • 直接插入排序
  • O(NlogN)~O(N^2)
    • 希爾排序
  • O(NlogN)
    • 快速排序
    • 歸併排序
    • 堆排序
  • O(N)
    • 基數排序
    • 桶排序
    • 基數排序
  • 一些不想搭理的算法(深感設計者腦洞新奇)
    • 睡眠排序
    • 猴子排序
    • 麪條排序
    • 雞尾酒排序

3.補充幾種排序的信息

排序算法 平均時間複雜度 平均最壞時間複雜度 空間複雜度 穩定與否
雞尾酒排序 O(n^2) O(n^2) O(1) 穩定
計數排序 O(n+m) O(n+m) O(m) 穩定
桶排序 O(n) O(nlogn) O(n) 穩定
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章