python全栈开发day15-递归函数、二分查找

1、昨日内容回顾

  主要内置函数:

    map(func,iter1):返回迭代器

    filter(func,iter1):返回迭代器

    sorted(iter,key=,reverse=):返回列表

    reversed(iter1):返回迭代器

              max:

              min:

              sum:

    

1:filter:返回为True则保留传进去的值。只能过滤传进去的值不能改变。如想改变返回值可以使用map

       

2、递归函数

  自己调用自己

  默认最大递归层数:997

  更改系统最次数大:sys.setrecursionlimit(1000)

  

3、二分查找

前提条件:

数字序列、不重复、有序。

def binary_search(li, iam, start=0, end=None):
    end = len(li)-1 if end is None else end
    mid_index = (end-start)//2 + start
    if start < end:
        if iam > li[mid_index]:
            return binary_search(li, iam, start=mid_index+1, end=end)
        elif iam < li[mid_index]:
            return binary_search(li, iam, start=start, end=mid_index)
        elif iam == li[mid_index]:
            return mid_index
        else:
            return None
    else:
        return None


li1 = [1, 3, 5, 7, 8, 9, 10]
print(binary_search(li1, 8))
View Code
原文地址:https://www.cnblogs.com/wuchenggong/p/9056478.html