zoukankan      html  css  js  c++  java
  • 5递归和二分算法

    一 .递归

    递归的定义——在一个函数里再调用这个函数本身

    递归的最大深度-997

    例子算年龄 问你a几岁,a比b大2岁,b比c大2岁,c是40岁,问你a几岁?

    # def age(n):
    #     if n == 3:
    #         return 40
    #     else:
    #         return age(n+1)+2
    # print(age(1))

    二. 二分算法(递归实现)

    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]
     1 def cal(l,num,start,end):
     2     '''
     3     
     4     :param l: 是列表
     5     :param num: 要找的数字
     6     :param start: 开始索引
     7     :param end: 结束索引
     8     :return: 
     9     '''
    10     if start<end:
    11         mid = (end-start)//2 +start ##mid代表索引
    12         # print(start,end)
    13 
    14         if l[mid]< num:
    15             return  cal(l,num,mid+1,end)
    16         elif l[mid]> num:
    17             return cal(l,num,start,mid-1)
    18         else:
    19             return mid,l[mid]
    20     else:
    21         return '没找到'
    22 print(cal(l,53,0,len(l)-1))
  • 相关阅读:
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    PHP中foreach用法详细讲解
  • 原文地址:https://www.cnblogs.com/huningfei/p/9010877.html
Copyright © 2011-2022 走看看