農會 資訊管理類電腦概論108 年第 120 題單選題
在一個按照大小排序好的100個整數的數列中,以二元搜尋法尋找一個數字是否存在此數列中的某個位置,搜尋過程中所需要的比較次數為
A正確答案
二元搜尋法最壞比較次數為 ⌈log2(N+1)⌉,100個元素最多需比較7次,絕不會超過對數上限。
為什麼答案是 A
二元搜尋法每次比較將範圍減半,最壞比較次數為 ⌊log2 N⌋+1。N=100 時,⌊log2 100⌋+1 = 6+1 = 7 次。
考點:二元搜尋次數考點:次方數誤判考點:線性搜尋平均考點:線性搜尋最壞
載入中…
完整詳解
Pro · 無限重點 二元搜尋法最壞比較次數為 ⌈log2(N+1)⌉,100個元素最多需比較7次,絕不會超過對數上限。
秒解:找大於等於N的最小2的次方數!2^6=64 < 100 ≤ 2^7=128,指數7即為最多比較次數。
逐選項分析
A二元搜尋次數✓ 正確
二元搜尋法每次比較將範圍減半,最壞比較次數為 ⌊log2 N⌋+1。N=100 時,⌊log2 100⌋+1 = 6+1 = 7 次。
B次方數誤判✕
10次對應的是 N=1024 (2^10) 的元素數量,本題 N=100 不需要這麼多次。
C線性搜尋平均✕ 陷阱
50次是「線性搜尋法」在100個元素中的「平均」比較次數 (N/2),並非二元搜尋。
D線性搜尋最壞✕ 陷阱
100次是「線性搜尋法」的最壞比較次數 (N),二元搜尋法每次減半,絕不會比到100次。
搜尋演演算法比較次數對照表 (N=100)
| 演演算法 | 前提條件 | 最壞比較次數 | 平均比較次數 |
|---|
| 二元搜尋法 | 必須已排序 | 7次 (⌊log2 100⌋+1) | 約 6次 |
| 線性搜尋法 | 不需排序 | 100次 (N) | 50次 (N/2) |
題目未明說「最多」,但預設指「最壞情況的最大比較次數」。考生易將二元搜尋與線性搜尋混淆,誤選50(線性平均)或100(線性最壞),務必牢記二元搜尋的對數特性。