演算法中的步數法
步數法是分析演算法的一種方法。在這種方法中,我們計算一條指令執行的次數。由此,我們將嘗試找到演算法的複雜度。
假設我們有一個演算法來執行順序搜尋。假設每條指令執行需要 c1、c2、…… 的時間,那麼我們將嘗試找出該演算法的時間複雜度。
| 演算法 | 執行次數 | 代價 |
|---|---|---|
| seqSearch(arr, n, key) i := 0 當 i < n 時,執行 如果 arr[i] = key,則 退出迴圈 結束 if 完成 返回 i | 1 n+1 n 0/1 1 | c1 c2 c3 c4 c5 |
現在,如果我們透過將執行次數乘以代價來累加代價(考慮最壞情況),我們將得到
代價=c1+(n+1)c 2+nc3+c 4+c 5
代價=c1+nc 2+c2+nc 3+c 4+c5
代價=n(c 2+c3)+c 1+c 4+c5
代價=n(c 2+c3)+C
考慮到 c1 + c4 + c5 為 C,因此最終方程類似於直線 y = mx + b。因此,我們可以說該函式是線性的。複雜度將為 O(n)。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP