4 8日 遞迴和二分查詢

2022-05-08 00:45:07 字數 663 閱讀 6481

在函式中呼叫函式本身自己。執行一次開闢乙個空間,python對你的記憶體有乙個保護機制,預設只能遞迴到998層。

def

func(n):

n += 1

print

(n) func(n)

func(0)

view code

二分查詢前提是有序且唯一的數字列表。

li = [1,21,30,32,44,55,56,433,]

def search(num,l,start=none,end=none):

start = start if start else

0 end = end if end else len(l) - 1mid = (end - start)//2 +start

if start >end:

return

none

elif l[mid] >num :

return search(num,l,start,mid-1)

elif l[mid]

return search(num,l,mid+1,end)

elif l[mid] ==num:

return

midprint(search(44,li))

二分查詢和遞迴的二分查詢

在乙個有序的陣列中查詢給定的資料項,把陣列衝中間分成兩半,然後看要查詢的資料項在陣列的哪一半,再次折半查詢。如下 public int find long searchkey else if lowerbound upperbound else private int recfind long se...

二分查詢 遞迴和非遞迴

二分查詢要求 資料儲存在順序儲存結構中 數字有序排放 原理 將陣列分為三部分,依次是左值,中值,右值 將要查詢的值和陣列的中值進行比較,若小於中值則在中值前 面找,若大於中值則在中值後面找,等於中值時直接返回。然後依次是乙個遞迴過程,將前半部分或者後半部分繼續分解為三部分。迴圈實現二分查詢 temp...

二分查詢(遞迴)

二分查詢 problem description 給出含有n個數的公升序序列,保證序列中的數兩兩不相等,這n個數編號從1 到n。然後給出q次詢問,每次詢問給出乙個數x,若x存在於此序列中,則輸出其編號,否則輸出 1。input 單組輸入。首先輸入乙個整數n 1 n n 3000000 接下的一行包含...