python查詢演算法

2022-08-31 19:45:14 字數 1006 閱讀 3236

#!/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]

print(seqsearch(lst,99))

1

#!/usr/bin/env python2#

二分查詢

3'''

4二分查詢(binary search),是一種在有序陣列中查詢某一特定元素的查詢演算法。

5查詢過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則查詢過程結束;

6如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,

7而且跟開始一樣從中間元素開始比較。如果在某一步驟陣列為空,則代表找不到。

8'''

9def

binarysearch(nums,key):

10 length =len(nums)

11 low =0

12 high = length -1

13while low 14 mid = int((low + high) // 2)

15if nums[mid] >key:

16 high = mid -1

17elif nums[mid] 18 low = mid + 1

19else:20

return

mid21

2223 nums = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]

24print(binarysearch(nums,11))

python查詢演算法

1.順序查詢 順序查詢也稱為線形查詢,屬於無序查詢演算法。從資料結構線形表的一端開始,順序掃瞄,依次將掃瞄到的結點關鍵字與給定值相比較,若相等則表示查詢成功 若掃瞄結束仍沒有找到關鍵字等於給定值的結點,表示查詢失敗。def line search data,num for index,val in ...

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

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