農會 資訊管理類電腦概論108 年第 112 題單選題
在計算複雜度中,循序搜尋(sequential search)的複雜度為
AO(n)正確答案
BO(n^{1/2})
CO(1)
DO(log n)
A正確答案
循序搜尋需逐一比對資料,平均與最差時間複雜度皆為 O(n),是計概必考的基本搜尋演演算法。
為什麼答案是 A
循序搜尋(線性搜尋)需從頭到尾逐一比對,平均與最差情況皆需檢查 n 個元素,故時間複雜度為 O(n)。
考點:線性搜尋考點:跳躍搜尋考點:常數時間考點:二元搜尋
載入中…
完整詳解
Pro · 無限重點 循序搜尋需逐一比對資料,平均與最差時間複雜度皆為 O(n),是計概必考的基本搜尋演演算法。
口訣:「循線找 O(n),二元切 O(log n),雜湊秒殺 O(1)」。看到循序搜尋直接選 O(n)!
逐選項分析
A線性搜尋✓ 正確
循序搜尋(線性搜尋)需從頭到尾逐一比對,平均與最差情況皆需檢查 n 個元素,故時間複雜度為 O(n)。
B跳躍搜尋✕
O(n^{1/2}) 通常對應跳躍搜尋(Jump Search),並非一般循序搜尋的時間複雜度。
C常數時間✕ 陷阱
O(1) 代表常數時間,如雜湊搜尋或循序搜尋的「最佳情況」(第一個就中),但 Big O 預設指最差情況。
D二元搜尋✕
O(log n) 為二元搜尋(Binary Search)的複雜度,使用前提必須是資料已經過排序。
常見搜尋演演算法時間複雜度對照
| 搜尋演演算法 | 平均/最差複雜度 | 前提條件 |
|---|
| 循序搜尋 (Sequential) | O(n) | 無需排序 |
| 二元搜尋 (Binary) | O(log n) | 必須先排序 |
| 雜湊搜尋 (Hash) | O(1) | 需建立雜湊表 |
| 跳躍搜尋 (Jump) | O(√n) | 必須先排序 |
Big O 符號通常表示「最差情況」上限。考生易被 O(1) 迷惑,誤以為是循序搜尋的最佳情況(第一個就找到),但未特別標示時一律以 O(n) 為準。