zoukankan      html  css  js  c++  java
  • 10-10 递归

    递归函数
    了解什么是递归---在函数中调用自身函数
    最大默认深度是997/998,
    能看懂递归
    能知道递归的应用场景
    初始递归
    算法---二分查找算法
    三级菜单---递归实现
    import sys
    sys.setrecursionlimit(100000)#可以改变递归的次数
    n = 0
    def story():
        global n
        n += 1
        print(n)
        story()
    story()
    
    递归的缺点:占内存
    优点:代码简单

    二分查找算法实现
    list = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
    def find(list,aim,start = 0,end = None):
        end = len(list)if end is None else end
        mid_index = (end - start)//2 +start
        if aim>list[0] and aim<list[-1]:
            if start<=end:
                if list[mid_index]<aim:
                    return find(list,aim,start=mid_index+1,end=end)
                elif list[mid_index]>aim:
                    return find(list, aim, start=start, end=mid_index-1)
                else:
                    return 'find:',aim,'是第%s个数'%mid_index
            else:
                return 'not find'
        else:
            return 'have no'
    print(find(list,66))
    

     

  • 相关阅读:
    数据库连接池
    一致性hash
    java 集合大家族
    linkedlist
    HashMap
    hashcode
    Job 逻辑执行图
    CDN
    网站缓存
    Mysql临时文件目录控制
  • 原文地址:https://www.cnblogs.com/Cheryol/p/9765140.html
Copyright © 2011-2022 走看看