W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
「搜索算法 searching algorithm」用于在數(shù)據(jù)結構(例如數(shù)組、鏈表、樹或圖)中搜索一個或一組滿足特定條件的元素。
搜索算法可根據(jù)實現(xiàn)思路分為以下兩類。
不難發(fā)現(xiàn),這些知識點都已在前面的章節(jié)中介紹過,因此搜索算法對于我們來說并不陌生。在本節(jié)中,我們將從更加系統(tǒng)的視角切入,重新審視搜索算法。
暴力搜索通過遍歷數(shù)據(jù)結構的每個元素來定位目標元素。
暴力搜索的優(yōu)點是簡單且通用性好,無須對數(shù)據(jù)做預處理和借助額外的數(shù)據(jù)結構。
然而,此類算法的時間復雜度為 O(n) ,其中 n 為元素數(shù)量,因此在數(shù)據(jù)量較大的情況下性能較差。
自適應搜索利用數(shù)據(jù)的特有屬性(例如有序性)來優(yōu)化搜索過程,從而更高效地定位目標元素。
此類算法的優(yōu)點是效率高,時間復雜度可達到 O(log?n) 甚至 O(1) 。
然而,使用這些算法往往需要對數(shù)據(jù)進行預處理。例如,二分查找需要預先對數(shù)組進行排序,哈希查找和樹查找都需要借助額外的數(shù)據(jù)結構,維護這些數(shù)據(jù)結構也需要額外的時間和空間開支。
Note
自適應搜索算法常被稱為查找算法,主要關注在特定數(shù)據(jù)結構中快速檢索目標元素。
給定大小為 n 的一組數(shù)據(jù),我們可以使用線性搜索、二分查找、樹查找、哈希查找等多種方法在該數(shù)據(jù)中搜索目標元素。各個方法的工作原理如圖 10-11 所示。
圖 10-11 多種搜索策略
上述幾種方法的操作效率與特性如表 10-1 所示。
表 10-1 查找算法效率對比
搜索算法的選擇還取決于數(shù)據(jù)體量、搜索性能要求、數(shù)據(jù)查詢與更新頻率等。
線性搜索
二分查找
哈希查找
樹查找
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: