搜索算法

在計算機科學中 ， 搜索算法是解決搜索問題的任何算法 ， 即檢索存儲在某個數據結構中的信息 ， 或者在問題域的搜索空間中計算的信息 。 這種結構的例子包括但不限於鏈表 ， 數組數據結構或搜索樹 。 合適的搜索算法通常取決於正在搜索的數據結構 ， 並且還可能包括有關數據的先前知識 。 搜索還包含查詢數據結構的算法 ， 例如SQL SELECT命令 。 搜索算法可以根據搜索機制進行分類 。 線性搜索算法以線性方式檢查每個與目標關鍵字關聯的記錄 。 二進制或半間隔搜索 ， 重複定位搜索結構的中心 ， 並將搜索空間分成兩半 。 比較搜索算法通過基於鍵的比較相繼地消除記錄來改進線性搜索 ， 直到找到目標記錄爲止 ， 並且可以按照定義的順序應用於數據結構 。 數字搜索算法基於使用數字鍵的數據結構中的數字屬性工作 。 最後 ， 哈希根據散列函數直接將鍵映射到記錄 。 在線性搜索之外進行搜索需要以某種方式對數據進行排序 。 搜索功能也根據其複雜性或最大理論運行時間進行評估 。 例如 ， 二進制搜索函數的最大複雜度爲或對數時間 。 這意味着查找搜索目標所需的最大操作次數是搜索空間大小的對數函數 。