

NOTE: 演算法的各種時間複雜度
source link: https://dannypsnl.github.io/blog/2020/05/12/cs/algorithm-time-complexity/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

NOTE: 演算法的各種時間複雜度
演算法時間複雜度分析:對每個不同的輸入大小,其基本運算所執行的次數
所有情況時間複雜度 T(n)T(n)T(n)
- 有些情況下基本運算執行次數與輸入大小以及輸入皆有關,例如循序搜尋中,目標值位置就會影響實際執行時間:假設目標 xxx 在第一位,那只需要比較一次;xxx 不在陣列中就需要比較 nnn 次
- 但對另一些演算法而言,基本運算執行次數只與輸入大小有關,這時我們稱存在 T(n)T(n)T(n)
最差情況時間複雜度 W(n)W(n)W(n)
對 T(n)T(n)T(n) 存在的演算法而言,W(n)≡T(n)W(n) \equiv T(n)W(n)≡T(n)
平均情況時間複雜度 A(n)A(n)A(n)
同樣地,只要 T(n)T(n)T(n) 存在,則 A(n)≡T(n)A(n) \equiv T(n)A(n)≡T(n)。事實上只要 T(n)T(n)T(n) 存在就不需要分析剩下的情況了,因為 T(n)T(n)T(n) 是一對一的函數。分析 A(n)A(n)A(n) 需要對 n 的可能輸入指定機率,例如對循序搜尋法處理不知情況下的陣列,目標 xxx 出現在每個位置的機率相等。但有些時候我們知道要處理的資料有特殊分佈,這時候就不能這機率相等的假設。Example:
循序搜尋對目標 xxx 在 kkk 處的陣列需要執行比較 kkk 次,對輸入大小為 nnn 的陣列,目標 xxx 在每個位置出現機率皆為 1n\frac{1}{n}n1。換句話說循序搜尋有 1n\frac{1}{n}n1 的機率需要執行 kkk 次比較,而對所有 nnn 分析如下
重點:不要把平均時間當成執行時間,尤其在執行時間分佈並不集中時,循序搜尋正是這類案例,因為對所有 nnn,任意 kkk 值的機率都是一樣的
最佳情況時間複雜度 B(n)B(n)B(n)
最佳情況複雜度就是對所有 nnn 能輸出的最小值,一樣用循序搜尋法作為案例,最佳情況為 xxx 在第一個位置時,此時對所有 nnn 執行的比較次數都是 111。
最佳情況通常不是分析時的重點,除非該演算法具有 T(n)T(n)T(n)。通常將精力放在平均情況上,但對特定有時限的任務最差情況分析也很重要。
Recommend
-
11
進度條是一個非常常見的功能,實現起來也不難,一般我們會用 div 來實現。作為一個這麼常見的需求,這篇就要來康康有哪些,以純前端有哪些有意思的方式來實現進度條。 基礎版 - div ps. (這邊以下 gif 周圍稍有些瑕疵,我也不知...
-
7
從調校 HTTP Server 的文章中學各種奇技淫巧 在「Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance」這篇文章裡面,...
-
16
從前端整合 WebForm 的各種方法 2021-07-16 05:06 PM 0 841 即便前端發展已十分成熟,幾乎無所不能,但仍有些必須依賴 ASP.NET WebForm 的場合 - 例如,在前端...
-
3
Infrastructure 各種踩雷經驗 Posted on 2021-12-13 Views: 40 閱讀筆記-踩雷分享 ref: https://matduggan.com/mistakes/ 本文是作者...
-
5
閱讀筆記: 「新手閱讀,我踩過的 Terraform 各種雷」 Posted on 2022-05-06 Views: 10 「新手閱讀,我踩過的 Terraform 各種雷」 標題: 「新手閱讀,我踩過的 Terraform 各種雷」
-
11
搞爆 Python 的各種姿勢 在 Hacker News 首頁上看到「
-
9
翻一下 Linux container 的各種 overhead 想要查一下 Linux 下跑 container 的 overhead,發現大...
-
3
各種特殊符號的英文 在 Hacker News 首頁上看到「
-
8
Related 搜尋引擎...
-
8
純 POSIX sh 實作各種功能 看到「pure sh bible」這篇,講純
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK