Python練習 遞迴二分演算法

2022-04-06 00:31:52 字數 861 閱讀 7617

1#2

#遞迴,二分演算法演示

3 l = [i for i in range(1,100)]#

定義乙個列表l,並追加1-99的所有數字

4def findnum(num,l):#

定義函式findnum傳遞需要查詢的數字和l列表

5 start = int(len(l)/2) #

獲取列表l的中間值,用於二分演算法

6if(start == 0):#

判斷如果l列表的取中元素為0的話證明l列表中的元素已經只剩1個元素了

7print(num,"

is miss

")#如果生下乙個元素都不能找到num的值則跳出整個函式

8return

none

9if(l[start]>num): #

如果l列表取中的元素大於num,就將拆分開的列表小於start的部分取出來重新賦值給l列表

10 l =l[0:start]

11 findnum(num,l)#

重新執行findnum函式

12elif(l[start] < num):#

如果l列表的取中元素小於num,就將拆分開的列表大於start的部分取出來重新賦值給l列表

13 l =l[start:]

14 findnum(num,l)#

重新執行findnum函式

15else:#

除了大於,小於兩種情況之外,只剩下等於了

16print(num,"

is find")

1718 findnum(98,l)#

執行findnum函式

折半查詢法(遞迴二分演算法)(非遞迴二分演算法)

include include include define max 10001 using namespace std int a max key intsearch int bot,int top 傳過陣列下標來,恰好可以呼叫全域性變數a max 如果傳過來陣列,位置變動不如下標容易 else ...

python遞迴查詢 python 遞迴,二分查詢

print list 胡辣湯 lst 河南話 四川話 東北 山東 上海 r reversed lst print list r huiwen 不是上海自來水來自海上 s huiwen 1 it reversed huiwen 返回的是迭代器 s for el in it s el print s l...

遞迴與二分演算法

遞迴 在乙個函式裡呼叫這個函式本身 修給遞迴的最大深度 import sys print sys.setrecursionlimit 100000 遞迴實現 選單 1 menu 6 網易 7 google 8 9 中關村 11 汽車之家 12 youku 13 14 上地 16 17 18 昌平 2...