python 3 遞迴呼叫與二分法

2022-08-02 02:45:15 字數 1102 閱讀 9599

遞迴呼叫:在呼叫乙個函式的過程中,直接或間接地呼叫了函式本身.

示例:

defage(n):

if n == 1:

return 18 #

結束條件

return age(n-1)+2 #

呼叫函式本身

print(age(5))

列印結果

26

1 遞推

2 回溯

示例圖 

1、必須有乙個明確的結束條件

2、每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少

3、遞迴效率不高,因為每次呼叫自身時,都會在記憶體中建立乙個新的記憶體空間,當不斷迴圈呼叫非常多次時,是非常耗記憶體的。

主要應用於有序序列中,原理是每次查詢都將原序列折半,逐漸縮小查詢範圍的一種演算法。

例如查詢乙個數字,查詢了列印 『find it』 沒有查到列印 'not exists'

l = [1,2,5,7,10,31,44,47,56,99,102,130,240]

defbinary_search(l,num):

print

(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)

view code

遞迴呼叫 二分法

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 找到了,索引為...