遞迴呼叫:在呼叫乙個函式的過程中,直接或間接地呼叫了函式本身.
示例:1 遞推defage(n):
if n == 1:
return 18 #
結束條件
return age(n-1)+2 #
呼叫函式本身
print(age(5))
列印結果
26
2 回溯
示例圖
1、必須有乙個明確的結束條件
2、每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少
3、遞迴效率不高,因為每次呼叫自身時,都會在記憶體中建立乙個新的記憶體空間,當不斷迴圈呼叫非常多次時,是非常耗記憶體的。
主要應用於有序序列中,原理是每次查詢都將原序列折半,逐漸縮小查詢範圍的一種演算法。
例如查詢乙個數字,查詢了列印 『find it』 沒有查到列印 'not exists'
l = [1,2,5,7,10,31,44,47,56,99,102,130,240]view codedefbinary_search(l,num):
(l)
if len(l) == 1:
if l[0] ==num:
print('
find it')
else
:
print('
not exists')
return
mid_index=len(l)//2mid_value=l[mid_index]
if num ==mid_value:
print('
find it')
return
if num >mid_value:
l=l[mid_index:]
if num
l=l[:mid_index]
binary_search(l,num)
binary_search(l,31)
遞迴呼叫 二分法
1 遞迴呼叫 2 二分法 遞迴呼叫 在呼叫乙個函式的過程中,直接或者間接又呼叫該函式本身,稱之為遞迴呼叫 遞迴必備的兩個階段 1 遞推 2 回溯 salary 5 salary 4 300 salary 4 salary 3 300 salary 3 salary 2 300 salary 2 sa...
python 遞迴與二分法
一 遞迴呼叫的定義 遞迴呼叫是函式巢狀呼叫的一種特殊形式,函式在呼叫時,直接或間接呼叫了自身,就是遞迴呼叫二 遞迴分為兩個階段 遞推,回溯 salary 5 salary 4 300 salary 4 salary 3 300 salary 3 salary 2 300 salary 2 salar...
python3 二分法查詢
二分法查詢 有序列表 掐頭去尾取中間 查詢列表中xx在不在列表中,在,則返回索引值 lst 1,4,6,8,9,21,23,26,35,48,49,54,67,89,99 使用in判斷,不使用二分法 n 49 for i,v in enumerate lst if v n print 找到了,索引為...