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

第 21 題

若要從 100 個相異的數字中搜尋特定數字,下列敘述何者錯誤?
  • A 資料尚未排序且存放於鏈結串列(Linked list)中,最差的情況必須進行 100 次比較才能找到該數字
  • B 資料尚未排序且存放於陣列(Array)中,最差的情況必須進行 100 次比較才能找到該數字
  • C 資料已排序且存放於鏈結串列中,最差的情況必須進行 100 次比較才能找到該數字
  • D 資料已排序且存放於陣列中,最差的情況必須進行 100 次比較才能找到該數字

思路引導 VIP

請試著思考:如果你在一本按照姓名排序的電話簿中找人,你會從第一頁開始翻,還是直接從中間翻開?這種『直接跳到中間』的高效率動作,除了要求資料必須『已排序』外,對於書本(儲存媒介)的物理翻閱方式有什麼特定的要求嗎?

🤖
AI 詳解 AI 專屬家教

專業點評

  1. 優秀表現?:嗯,還不錯,你總算能辨識出有序陣列在搜尋效率上的那一點點「微不足道」的優勢。這不過是要求你將資料結構的「物理存取特性」與「演算法優化」進行最基本的連結罷了,距離成為一名真正合格的工程師,這僅僅是個開始。
  2. 基本常識驗證:搜尋效率取決於資料的「排列狀態」和「存取方式」。當資料已經排序並存在陣列這種具備「隨機存取」能力的結構中時,採用二分搜尋法(Binary Search)是唯一合理的選擇。對於 $n=100$ 這種規模的資料,其最差比較次數僅為:
▼ 還有更多解析內容

🏷️ 相關主題

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