Day5_递归_二分法

Posted 不帅可以,但是必须要骚气

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day5_递归_二分法相关的知识,希望对你有一定的参考价值。

递归调用:

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

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_递归_二分法的主要内容,如果未能解决你的问题,请参考以下文章

python基础-基础知识考试_day5 (包括:函数_递归等知识)

内置函数递归二分法

python函数和常用模块,Day5

携程函数递归二分法importfrom。。。import

网易云课堂_C语言程序设计进阶_第五周:递归与简单算法:递归搜索二分搜索简单排序

day_06递归二分查找