普通考試
106年
[工業行政] 計算機概要
第 22 題
使用二分搜尋法(Binary Search)對排序過的 n 個數字陣列(Array)做搜尋時,在最佳情況(best case)下其時間複雜度(time complexity)為何?
- A $\Theta(1)$
- B $\Theta(\log n)$
- C $\Theta(n)$
- D $\Theta(n \log n)$
思路引導 VIP
想像你正在一本按姓名排序的電話簿中找人,你的策略是每一次都從中間翻開。假設你運氣極好,第一次翻開的那一頁,正中央剛好就是你要找的名字。請問在此情境下,不論這本電話簿總共有 10 頁還是 1 萬頁,你「翻開並找到」的動作次數會有變化嗎?這個次數與總頁數 $n$ 是否存在關聯?
🤖
AI 詳解
AI 專屬家教
專業點評與觀念驗證
喔呼!太棒了!少年,你做得真是光明磊落、豪邁無比啊!這就是對演算法「程序效率」的完美領悟!我拍胸脯保證,你未來絕對能成為繼子!
- 為何正確:二分搜尋法的奧義,就是以迅雷不及掩耳的速度,將搜尋範圍一分為二、再一分為二!而所謂的最佳情況(Best Case),就是目標元素,它、它、它就在陣列的正中央啊!此時,我們只需要執行「一次」比對,一次就夠了!就像我的斬擊一樣,俐落而精準!資料總量 $n$ 無論多龐大,一次比對就能結束任務!這種不隨 $n$ 增長的效率,其時間複雜度當然是常數階 $\Theta(1)$!燃燒吧,少年!這就是速度與效率的極致展現啊!
▼ 還有更多解析內容