zoukankan      html  css  js  c++  java
  • 递归

    一、程序调用自身的编程技巧称为递归

    例子:

    #最大递归深度997/998——python限制的
    n=0
    def story():
        print('')
        global n
        n+=1
        print(n)
        story()
    story()
    '''
    #修改深度

    例子
    1、
    def age(n):
        if n==4:
            return  12
        elif n>0 and n<4:
            return age(n+1)+2
    print(age(1))
    2、
    #斐波那契1,1,2,3,5,8
    def fib(n):
        if n==1 or n==2:
            return 1
        else:
            return fib(n-1)+fib(n-2)
    print(fib(14))

    总结:

    #如果递归次数太多就不适合用递归来解决问题
    #占用内存
    #使代码变简单
    #递归必须要有结束条件
    #返回值不要只看到return,要看返回操作是递归到第几层发生,然后返回给了谁,如果不是返回给最外层函数就接收不到

    二、算法啊:计算方法——人脑复杂,计算机简单

    1、查找

    二分法查找算法——有序数列

    #二分法查找数
    def find(l,aim,start=0,end=None):
        end=len(l) if end is None else end
        mid_index=(start+end)//2
        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=end-1)
       # elif l[mid_index]==aim:
            else:
              return mid_index
        else:
            return 'xx'
    l=[1,2,3,4,5,7,8,9,10]
    print(find(l,4))

    2、排序

    3、最短路径

  • 相关阅读:
    UIViewcontroller生命周期方法
    runtime中的宏定义解释表
    opencv在Mac环境下的安装和配置
    Oracle导入导出
    Oracle触发器详解
    查找表的父表和子表
    Oracle创建表空间
    TRIGGER控制级联更新
    启动Oracle的bat文件
    PL(SQL)块
  • 原文地址:https://www.cnblogs.com/jcb9426986/p/10780932.html
Copyright © 2011-2022 走看看