递归与二分算法

递归与二分查找算法

递归:在一个函数里调用这个函数本身

修给递归的最大深度

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

  

转载于:https://www.cnblogs.com/52-qq/p/7265236.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值