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...