1.順序查詢:時間複雜度為
#順序查詢:
def linear_search(li,val):
#遍歷列表li
for ind,v in enumerate(li):
if v==val:
return ind
else:
return none
if __name__ == "__main__":
li = [1,2,3,4,5,6]
a = linear_search(li,4)
print(a)
輸出:3
2.二分查詢:時間複雜度為
#二分查詢
def binary_search(li,val):
left = 0
right = len(li)-1
while left <= right:
mid = (left+right)//2
if li[mid] == val:
return mid
#如果val大於中間值,則讓left指向mid+1
elif li[mid]val:
right = mid-1
else:
return none
if __name__ == "__main__":
li = [1,2,3,4,5,6]
a = binary_search(li,4)
print(a)
輸出:3
注:python內建的函式index()是採用順序查詢的方式,因為雖然二分查詢的速度快,但其有乙個前提條件:列表必須是已排好序的。
查詢演算法之順序查詢和二分查詢
1.順序查詢 基本思想 從資料結構線性表一端開始,順序掃瞄,依次將掃瞄到的關鍵字值與給定key相比較,若相等則表示查詢成功 若掃瞄結束仍沒有找到關鍵字等於key值的結點,表示查詢失敗。順序查詢適合於儲存結構為順序儲存或鏈結儲存的線性表。如下 include include using namespa...
順序查詢和二分查詢
二分查詢 陣列裡查詢某個元素 search函式 其中 array為陣列,k為要找的值,low為查詢範圍的最小鍵值,high為查詢範圍的最大鍵值 function search array,k,low 0,high 0 if low high 如果還存在剩餘的陣列元素 elseif k array m...
順序查詢和二分查詢
1 順序查詢 又稱線性查詢,是從陣列的第乙個元素開始查詢,直到找到待查詢元素的位置。順序查詢適合於儲存結構為順序儲存或鏈結儲存的線性表。使用for迴圈等實現。int find int a,int x return index 2 二分查詢 二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能...