python查詢演算法

2021-10-08 06:32:54 字數 1221 閱讀 9899

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實現)

在日常生活中,幾乎每天都要進行一些查詢的工作,在 簿中查閱某個人的 在電腦的資料夾中查詢某個具體的檔案等等。查詢表是由同一型別的資料元素構成的集合。例如 號碼簿和字典都可以看作是一張查詢表。一般對於查詢表有以下幾種操作 在查詢表中查詢某個具體的資料元素 在查詢表中插入資料元素 從查詢表中刪除資料元素...