• Python学习日记(十三) 递归函数和二分查找算法


    什么是递归函数?

    简单来说就是在一个函数中重复的调用自己本身的函数

    递归函数在调用的时候会不断的开内存的空间直到程序结束或递归到一个次数时会报错

    计算可递归次数:

    i = 0
    def func():
        global i
        print('i = {}'.format(i))
        i += 1
        return func()
    func()            #.....i = 994 i = 995 RecursionError: maximum recursion depth exceeded while calling a Python object

    在这里我们修改我们可递归的次数:

    import sys
    sys.setrecursionlimit(1000000)
    i = 0
    def func():
        global i
        print('i = {}'.format(i))
        i += 1
        return func()
    func()      #...i = 3924 i = 3925

    如果还想递归更多的次数,就必须要提升计算机的性能了

    递归函数的优点就是能让一个问题变得简单,但缺点就是太占用内存,因此递归函数不适合解决需要大规模递归运算的问题

    二分查找算法:

    这个被查询的列表必须是一个有序的列表

    def find(l,aim,start = 0,end = None):
        end = len(l) if end is None else end
        mid_index = (end-start)//2 + start
        if start <= end:
            if l[mid_index] < aim:
                return find(l,aim,start=mid_index+1,end=end)
            elif l[mid_index] > aim:
                return find(l,aim,start=start,end=mid_index-1)
            else:
                return mid_index
        else:
            return '找不到这个元素!'
    print(find([5,6,8,9,10,17,18,19,20],8)) #2
  • 相关阅读:
    SDRAM(3):刷新和仲裁
    SDRAM(2):初始化
    SDRAM(1):基本介绍
    计数器(3):避免多计少计
    协议——SPI
    matlab数字图像处理 入门基础
    gVim编辑器——基本设置、常用命令、代码片段
    Pomelo的Router
    Pomelo聊天室框架
    Pomelo术语解释
  • 原文地址:https://www.cnblogs.com/Fantac/p/11388221.html
Copyright © 2020-2023  润新知