目錄
線性查找
算法實現(xiàn)
算法實現(xiàn)
python
C++
復(fù)雜度分析
優(yōu)點與缺點
線性查找(Linear Search)是一種最基礎(chǔ)的查找方法,其從數(shù)據(jù)結(jié)構(gòu)的一端開始,依次訪問每個元素,直到另一端后停止。
算法實現(xiàn)線性查找實質(zhì)上就是遍歷數(shù)據(jù)結(jié)構(gòu) + 判斷條件。比如,我們想要在數(shù)組?nums
中查找目標(biāo)元素?target
的對應(yīng)索引,那么可以在數(shù)組中進行線性查找。
依舊以python與C++為例
pythondef linear_Find(nums, target):
# 遍歷數(shù)組
for i in range(len(nums)):
if nums[i] == target: # 找到目標(biāo)元素,返回其索引
return i
return -1 # 未找到目標(biāo)元素,返回 -1
C++int linearFind(vector& nums, int target) {
// 遍歷數(shù)組
for (int i = 0; i< nums.size(); i++) {
// 找到目標(biāo)元素,返回其索引
if (nums[i] == target)
return i;
}
// 未找到目標(biāo)元素,返回 -1
return -1;
}
復(fù)雜度分析時間復(fù)雜度?O(n)?:?其中?n?為數(shù)組或鏈表長度。
空間復(fù)雜度?O(1)?:?無需使用額外空間。
優(yōu)點與缺點線性查找的通用性極佳。?由于線性查找是依次訪問元素的,即沒有跳躍訪問元素,因此數(shù)組或鏈表皆適用。
線性查找的時間復(fù)雜度太高。?在數(shù)據(jù)量?n?很大時,查找效率很低。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧