1. 程式人生 > >遞歸與二分算法

遞歸與二分算法

調用 input 查找 bsp soho isp pen 老男孩 brush

遞歸:在一個函數裏調用這個函數本身

修給遞歸的最大深度

import sys
print(sys.setrecursionlimit(100000))

 遞歸實現三級菜單

技術分享
 1 menu = {
 2     北京: {
 3         海澱: {
 4             五道口: {
 5                 soho: {},
 6                 網易: {},
 7                 google: {}
 8             },
 9             中關村: {
10                 
愛奇藝: {}, 11 汽車之家: {}, 12 youku: {}, 13 }, 14 上地: { 15 百度: {}, 16 }, 17 }, 18 昌平: { 19 沙河: { 20 老男孩: {}, 21 北航: {}, 22 }, 23
天通苑: {}, 24 回龍觀: {}, 25 }, 26 朝陽: {}, 27 東城: {}, 28 }, 29 上海: { 30 閔行: { 31 "人民廣場": { 32 炸雞店: {} 33 } 34 }, 35 閘北: { 36 火車戰: { 37 攜程: {} 38 }
39 }, 40 浦東: {}, 41 }, 42 山東: {}, 43 } 44 45 def three(dic): 46 for key in dic: 47 print(key) 48 k = input(>>>>>>>) 49 if k in dic: 50 three(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))

  

遞歸與二分算法