搜尋法 (Search Algorithms)

在資料結構中尋找特定元素的計算方法

線性搜尋

線性搜尋從頭到尾遍歷每個元素,時間複雜度 O(n)。是最簡單的搜尋方法,適用於未排序資料。

def linear_search(arr, target): for i, x in enumerate(arr): if x == target: return i return -1

二分搜尋

二分搜尋要求資料已排序,每次將搜尋範圍縮小一半。時間複雜度 O(log n),是搜尋有序資料的首選。

def binary_search(arr, target): left, right = 0, len(arr) - 1 while left <= right: mid = (left + right) // 2 if arr[mid] == target: return mid elif arr[mid] < target: left = mid + 1 else: right = mid - 1 return -1

進階搜尋演算法

A* 搜尋:結合啟發式函數的最短路徑搜尋演算法,廣泛用於遊戲和地圖導航。

廣度優先搜尋 (BFS):逐層走訪,用於無權圖的最短路徑。

深度優先搜尋 (DFS):深入走訪,用於拓墣排序、連通分量檢測。

本課程範例

相關連結