python-遞歸簡單描述和一些實例

'''
什麼是遞歸:在函數中調用自身函數.
最大遞歸深度默認是997/998 —— 是python從內存角度出發做得限制

RecursionError: maximum recursion depth exceeded while calling a Python object
遞歸的錯誤,超過了遞歸的最大深度

import sys
sys.setrecursionlimit(1000000) 修改遞歸最大深度

如果遞歸次數太多,就不適合使用遞歸來解決問題
遞歸的缺點 : 佔內存
遞歸的優點:  會讓代碼變簡單
'''

#二分查找算法實現
def find(l,aim):
    mid_index = len(l) // 2
    if l[mid_index] < aim:
        new_l = l[mid_index+1 :]
        find(new_l,aim)
    elif l[mid_index] > aim:
        new_l = l[:mid_index]
        find(new_l, aim)
    else:
        print('找到了',mid_index,l[mid_index])

find(l,66)

# 斐波那契  # 問第n個斐波那契數是多少
def fib(n,a=1,b=1):
    if n==1 : return a
    return fib(n-1,b,a+b)
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章