zoukankan      html  css  js  c++  java
  • day16 递归函数 跟 二分查找

    ---恢复内容开始---

                                            人理解函数  神理解递归

     一 递归函数

     递归函数:在一个函数里在调用这个函数本身

    递归的最大深度是998

    def foo(n):
        print(n)
        n += 1
        foo(n)
    foo(1)
    

     我们可以用这种方式来修改递归的最大深度

    import sys
    print(sys.setrecursionlimit(100000)
    

      递归实例

    age(4) = age(3) + 2 
    age(3) = age(2) + 2
    age(2) = age(1) + 2
    age(1) = 40  吧他变成一个函数
    

      

    def age(n):
        if n==1:
            return 40
        else:
            return  age(n-1)+2
    print(age(4))
    

      二分查找算法

    首先是一个有序的列表

    l = [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 two_search(l,aim,start=0,end=None):
        end = len(l)-1 if end is None else end
        mid_index = (end - start) // 2 + start
        if end >= start:
            if aim > l[mid_index]:
                return two_search(l,aim,start=mid_index+1,end=end)
    
            elif aim < l[mid_index]:
                return two_search(l,aim,start=start,end=mid_index-1)
    
            elif aim == l[mid_index]:
                return mid_index
            else:
                return '没有此值'
        else:
            return '没有此值'
    print(two_search(l,9))
    

      

  • 相关阅读:
    包含min函数的栈
    树的子结构
    合并两个排序的链表
    反转链表
    字符移位
    有趣的数字
    顺时针打印矩阵
    有道云笔记自动签到
    Shell重定向
    Ubuntu 18.04安装Docker
  • 原文地址:https://www.cnblogs.com/daien522556/p/9214523.html
Copyright © 2011-2022 走看看