遞迴:在乙個函式裡呼叫這個函式本身
修給遞迴的最大深度
import sys
print(sys.setrecursionlimit(100000))
遞迴實現**選單
1 menu =,6'例題詳解網易': {},7'
': {}8},
9'中關村'
: ,11
'汽車之家
': {},12'
youku
': {},
13},14'
上地': ,16
},17
},18'昌平
': ,21'
北航': {},
22},23'
天通苑'
: {},24'
回龍觀'
: {},
25},26'
朝陽': {},27'
東城': {},
28},29'
上海': 33}34
},35'閘北
': 38}
39},40'
浦東': {},
41},42'
山東': {},43}
4445
defthree(dic):
46for key in
dic:
47print
(key)
48 k = input('
>>>>>>>')
49if k in
dic:
50three(dic[k])
51 three(dic)
二分查詢演算法:
l = [2,3,5,10,15,16,18,22,26]
def find(l,aim,start,end):
mid = (end+start)//2
if l[mid] > aim: #中間值大於目標值,左邊尋找
end = mid #頭部不變,
return find(l,aim,start,end)
elif l[mid] < aim:
start= mid
return find(l,aim,start,end)
else:
return mid
print(find(l,15,start=0,end=len(l)-1))
折半查詢法(遞迴二分演算法)(非遞迴二分演算法)
include include include define max 10001 using namespace std int a max key intsearch int bot,int top 傳過陣列下標來,恰好可以呼叫全域性變數a max 如果傳過來陣列,位置變動不如下標容易 else ...
二分查詢遞迴演算法
使用此演算法的前提是,要查詢的範圍為有序範圍。一組數 num 9 left mid right 步驟 1.left為最左端元素的下標,right為最右端元素的下標,mid為查詢區間的中間元素,key為要查詢的元素。2.當left right的時候,比較num mid 和key 1 num mid k...
二分查詢的非遞迴與遞迴演算法
一.引入 假設乙個已經 排好序的陣列a n 若要搜尋其中某個元素x,一般想到的是逐個查詢,倘若x剛好在a n 則最壞的情況需要n次比較,如若x不在陣列a中,則更加得不償失.二分查詢作為乙個典型的分支策略,實現了對n個排好序的陣列進行折半查詢,每次取a n 2 和x比較,找到則返回下標,如果a n 2...