查找演算法#

查找是演算法中最基礎也最重要的操作。高效的查找演算法能將時間複雜度從線性 O(n) 降至對數 O(log n) 甚至常數 O(1)。

章節概覽#

演算法時間複雜度適用資料結構核心要求
二分查找O(log n)陣列有序、支援隨機存取
跳表O(log n)鏈結串列多層索引

查找的本質#

查找的核心問題是:如何在一堆資料中快速定位目標?

  • 線性查找:O(n),逐一比較
  • 二分查找:O(log n),每次排除一半
  • 雜湊查找:O(1),直接計算位置

選擇查找演算法時,要考慮:

  1. 資料是否有序
  2. 資料結構是否支援隨機存取
  3. 是否需要支援動態插入/刪除