1.順序查詢: 順序查詢也稱為線形查詢,屬於無序查詢演算法。從資料結構線形表的一端開始,順序掃瞄,依次將掃瞄到的結點關鍵字與給定值相比較,若相等則表示查詢成功;若掃瞄結束仍沒有找到關鍵字等於給定值的結點,表示查詢失敗。
def
line_search
(data, num)
:for index, val in
enumerate
(data)
:if val == num:
return index
return
none
2.二分法查詢: 分法查詢又稱折半查詢。二分法查詢是在乙個有序列表的基礎上完成的,要查詢的值x和列表的中間值m作比較,如果x大於m,那麼接下來從m+1的右區間內再以相同方法取中間值做判斷,迴圈往復此過程,直到判斷出x=m的時候就是查詢成功。否則相反。返回型別為布林值
def
binary_seach
(data, num)
: left =
0 right =
len(data)-1
while left <= right:
mid =
(left + right)//2
if data[mid]
== num:
return mid
elif data[mid]
> num:
right = mid -
1else
: left = mid +
1return
none
defbinary_search
(alist, item)
:"""二分查詢,遞迴"""
n =len(alist)
if n >0:
mid = n//
2if alist[mid]
== item:
return
true
elif item < alist[mid]
:return binary_search(alist[
:mid]
, item)
else
:return binary_search(alist[mid+1:
], item)
return
false
python查詢演算法
返回 x 在 arr 中的索引,如果不存在返回 1 defbinarysearch arr,l,r,x 基本判斷 if r l mid int l r l 2 元素整好的中間位置 if arr mid x return mid 元素小於中間位置的元素,只需要再比較左邊的元素 elif arr mid...
python查詢演算法
usr bin env python 順序查詢 def seqsearch nums,key length len nums for i in range length if nums i key return i else return 1 lst 12,32,0,9,333,42,123,88 ...
查詢演算法(Python實現)
在日常生活中,幾乎每天都要進行一些查詢的工作,在 簿中查閱某個人的 在電腦的資料夾中查詢某個具體的檔案等等。查詢表是由同一型別的資料元素構成的集合。例如 號碼簿和字典都可以看作是一張查詢表。一般對於查詢表有以下幾種操作 在查詢表中查詢某個具體的資料元素 在查詢表中插入資料元素 從查詢表中刪除資料元素...