查找算法之顺序查找
參考:
1. 順序查找 | 博客園
?
基本思想:
?
順序查找,就是從第一個(gè)元素開(kāi)始,按索引順序遍歷待查找序列,直到找出給定目標(biāo)或者查找失敗。
特點(diǎn):
1. 對(duì)待查序列(表)無(wú)要求 --?待查找序列可以是有序,也可以是無(wú)序;
2. 從第一個(gè)元素開(kāi)始;
3. 需要逐一遍歷整個(gè)待查序列(除非已經(jīng)找到);
4. 若查找到最后一個(gè)元素還沒(méi)找到,則查找失敗;
?
缺點(diǎn):
效率低 --?需要遍歷整個(gè)待查序列
?
時(shí)間復(fù)雜度:
O(n),平均查找時(shí)間 = 列表長(zhǎng)度/2
空間復(fù)雜度:
1個(gè)待查序列+1個(gè)目標(biāo)元素 <=> O(n)
?
看一組示例,從一組數(shù)據(jù)[3,6,7,2,12,9,0,11]中查找12,
初始狀態(tài):指針p指向列表第一個(gè)元素,即索引為0元素,開(kāi)始向右滑動(dòng),以匹配、查找目標(biāo)
?
Step1:p指針開(kāi)始向右滑行一個(gè)單位,進(jìn)行比較
Step2,3,直到4:查找到元素12,匹配目標(biāo)12成功,索引=4
?
示例代碼
data = [3,6,7,2,12,9,0,11]""" sequence search """ def seqsearch(array, target):i = 0for i in range(len(array)):element = array[i]if element == target:print 'sucess to find out %d from array, index=%d'%(target, i)return iprint 'fail to find out the target'return -1print seqsearch(data, 12) #sucess to find out print seqsearch(data, 8) #fail to find out運(yùn)行結(jié)果
sucess to find out 12 from array, index=4 4 fail to find out the target -1?
轉(zhuǎn)載于:https://www.cnblogs.com/fortunely/p/9616597.html
總結(jié)
- 上一篇: 梦到别人家牛死了是什么意思
- 下一篇: 图论:弦图最小点染色