码迷,mamicode.com
首页 > 其他好文 > 详细

Day5_递归_二分法

时间:2017-08-03 01:05:54      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:回溯   rom   tco   ica   sans   search   word   12px   list   

递归调用:

在调用一个函数的过程中,直接或间接的调用函数本身。

def func():

  print(‘from func‘)

 

间接调用:

def foo():

  print(‘form foo‘)

  bar()

def bar():

  print(‘form foo‘)

  foo()

递归都是有次数限制的。

 

问5个人年龄,第五个比第四个大2岁,以此类推,第一个18岁。

def age(n):
    if n ==1:
        return 18
    return age(n-1)+2

print(age(5))

递归的执行分为两个过程:

  递推和回溯。

 

循环取出列表中的所有元素:

l=[1,2[3,4[5,6[7,8[9,10]]]]]

def search(l):
    for item in l:
        if type(item) is list:
            search(item)
        else:
            print(item)

search()

  

 

二分法:

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

def binary_search(l,num):
    print(l)
    if len(l) > 1:
        mid_index=len(l)//2
        if num > l[mid_index]:
            l=l[mid_index:]
            binary_search(l,num)
        elif num < [mid_index]:
            l=l[:mid_index]
            binary_search(l,num)
        else:
            print(‘find it‘)
    else:
        if l[0] == num:
            print(‘find it ‘)
        else:
            print(‘not exist‘)
            return

 

Day5_递归_二分法

标签:回溯   rom   tco   ica   sans   search   word   12px   list   

原文地址:http://www.cnblogs.com/sexiaoshuai/p/7277318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!