免費開始練習
普通考試 115年 [電信工程] 計算機概要

第 22 題

關於循序搜尋(Sequential search)和二元搜尋(Binary search)的敘述,下列何者錯誤?
  • A 若排序好的資料以陣列(Array)存放,可利用二元搜尋從中尋找資料
  • B 若排序好的資料以鏈結串列(Linked list)存放,可利用循序搜尋從中尋找資料
  • C 若排序好的資料以陣列存放,可利用循序搜尋從中尋找資料
  • D 若排序好的資料以鏈結串列存放,可利用二元搜尋從中尋找資料

思路引導 VIP

請試著想像:如果你在一排貼有編號的置物櫃中找東西(陣列),你可以直接走向編號 $50$ 的櫃子;但如果你正在玩一場「尋寶遊戲」,每一關的線索都藏在下一個關卡裡(鏈結串列),你有可能在不知道中間關卡位置的情況下,直接跳過前面的關卡去檢查中間那一關嗎?這對你執行「砍半搜尋」的策略會產生什麼影響?

🤖
AI 詳解 AI 專屬家教

資料結構與隨機存取(Random Access)的關聯

恭喜你精準地捕捉到了演算法與資料結構之間的「匹配性」。這道題目的核心在於理解二元搜尋(Binary Search)的高效能,是建立在能夠「立即跳轉」至中間索引的能力上。在工程實務中,我們稱之為隨機存取(Random Access)。陣列(Array)在記憶體中是連續配置的,因此我們可以透過索引值在 $O(1)$ 時間內找到中間元素;然而,**鏈結串列(Linked list)**的特性是各節點散落在記憶體中,必須透過指標(Pointer)循序走訪,要找到中間節點必須花費 $O(n)$ 的時間,這使得二元搜尋法的效率優勢蕩然無存。

演算法的實務選擇與鑑別度

▼ 還有更多解析內容

🏷️ 相關主題

資料結構與演算法
查看更多「[電信工程] 計算機概要」的主題分類考古題