zoukankan      html  css  js  c++  java
  • 第七章 递归函数(续)、二分查找算法

    1.递归函数                                                    

    递归函数:在函数的内部用自己

    递归的最大深度:998

    注意:在编写程序的时候最好不要修改递归深度

      如果程序需要修改递归深度才能运行,说明这个功能不太适合用递归函数完成

    递归函数必须要添加return

    递 ---- 函数向深度进行,直到函数不成立 ---> 递归需要有一个停止的条件

    归 ---- 值的返回,计算过程

    # alex多大了  alex比wusir大两岁  40+2+2
    # wusir多大了 wusir比金老板大两岁 40+2
    # 金老板多大了 40
    
    def age(n):
        if n == 3:
            return 40
        else:
            return age(n+1)+2
    
    # 运行过程
    # 递的过程
    n = 1
    age(1)
    # if 1 == 3: X
    #     return 40 X
    else:
        return age(1+1)+2
    
    # 得出结果 age(2)+2
    n = 2
    age(2)
    # if 2 == 3: X
    #     return 40 X
    else:
        return age(2+1)+2
    
    # 得出结果 age(3)+2
    n = 3
    age(3)
    if 3 == 3:
        return 40
    # else: X
    #     return age(3 + 1) + 2 X

     

    2.二分查找算法                                                 

    引子:

      算法:计算一些比较复杂的问题,所采用的 在空间上-(内存里)或者时间上-(执行的时间)更有优势的方法

    常见排序算法:快速排序(基础) 堆排序 冒泡(低级)

    递归求解二分查找算法:有序的数字集合的查找问题,在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]中查找66

    思路图:

    # 算法
    def cal(l,num,start=0,end=None):
        # if end is None:end = len(l)-1
        end = len(l)-1 if end is None else end
        if start <= end:
            mid = (end - start)//2 + start
            if l[mid] > num :
                return cal(l, num, start, mid-1)
            elif l[mid] < num:      # 13  24
                return cal(l,num,mid+1,end)
            else:
                return mid
        else:
            return None
    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]
    print(cal(l,66))
    # 17
    一鼓作气,再而衰,三而竭。
  • 相关阅读:
    redux dispatch、action、reduce 执行流程
    react中使用react-redux
    npm 全局安装默认地址
    react 组件外js文件路由跳转
    withRouter的作用和适用场景
    react 自定义高阶组件,实现路由拦截,子路由渲染
    移动端原生js使用touch事件监听滑动方向
    Vue.js中this.$nextTick()的使用与理解
    域名等级划分介绍
    nodejs 实现一个账号只能一台设备登录
  • 原文地址:https://www.cnblogs.com/gongniue/p/9001557.html
Copyright © 2011-2022 走看看