搜尋演算法:二分搜尋 vs 線性搜尋

Created by Sam Li

學習目標 (Learning Objective)

透過視覺化賽跑,理解並比較線性搜尋與二分搜尋的運作邏輯。觀察在資料量變大時,為什麼二分搜尋能展現壓倒性的效能優勢。

線性搜尋 (Linear Search)

從第一個元素開始逐一檢查,直到找到目標為止。這是一種最直觀的搜尋方式,適用於任何資料(無論是否排序)。缺點是當資料量龐大時,搜尋速度會非常慢。

二分搜尋 (Binary Search)

透過每次檢查「中間值」,直接將搜尋範圍縮減一半。速度極快,即使面對上百萬筆資料也能在幾十次內找到。但其先決條件是:資料必須已經「排序」。

💡 常見迷思 (Misconceptions)

  • 迷思一:二分搜尋永遠比較好?
    不一定!二分搜尋必須在「已排序」的資料上執行。如果資料未排序,事前排序所花費的時間,可能比直接使用線性搜尋還要久。
  • 迷思二:只能用來搜尋數字?
    錯!只要資料有「大小順序」關係(例如英文字母 A-Z、日期先後),都可以使用二分搜尋。

🔗 思考與連結 (Think & Link)

生活中有許多搜尋演算法的影子,試著思考:

  • 翻英漢字典:你會從第一頁開始翻(線性),還是直接從中間翻開找(二分)?
  • 找遺失的鑰匙:你只能一個個房間找,因為鑰匙沒有「順序」可言,這就是真實世界的線性搜尋!

大賽跑:1 到 31

線性搜尋跑道

步數: 0
等待開始...

二分搜尋跑道

步數: 0
等待開始...