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