博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
递归函数
阅读量:6515 次
发布时间:2019-06-24

本文共 1132 字,大约阅读时间需要 3 分钟。

递归函数:

在一个函数内调用自己

最大递归层数做了一个限制(只要997,欢乐带回家)

修改参数: import sys(#所有和python相关的设置和方法)

但是尽量别瞎修改

 

结束递归的标志:   return

# def threeLM(menu): #     for key in menu : #         print(key) # #     k = input('>>>') #     if k in menu: #         threeLM(menu[k]) # # threeLM(menu)

 

 

二分查找算法:  就是一种计算的方法

1. 一个数除到不能被2整除为止

def cal(num):

  if num %2 == 0:   #先判断是否能被二整除

    num = num //2     #除2 取整

    return cal(num)   #    继续扔进去除

  else :

    return num 

print(cal(10))

 

 

 

 

2.      l = [1,2,3,4,7,11,23,65,89,107,654,7675,9782]

基础版:

def find(l,aim):     

  mid = len(l)//2  #取整

  if l[mid] >aim:

    new_l = l[ :mid ]

    return find(new_l,aim)

 

  elif l[mid]<aim :

    new_l = l[mid+1 :]

    return find(new_l,aim)

 

  else :

    return l[mid]

print(find(l,7675))

 

进阶版:

def func(l,aim,start = 0,end = len(l)-1):

  mid = (start+end )//2

  if not l[start:end+1]:

    return 

  elif aim > l[mid]:

    return func(l,aim,mid+1,end)

  elif aim < l[mid]:

    return func(l,aim,start,mid-1)

  elif aim == l[mid]:

    print('bingo')

    return mid

 

index = func(l,98)

 

 

递归解决的问题:

就是通过参数来控制每一次调用,缩小计算的规模

适合的场景:

就是数据的规模在减小,但是解决问题的思路没有发生改变

 

结束递归的标志:

return

转载于:https://www.cnblogs.com/ugfly/p/7265460.html

你可能感兴趣的文章
一个完美DCIM应该具备的功能与价值
查看>>
《SEO的艺术(原书第2版)》——1.5 人们如何搜索
查看>>
经验贴 | 电梯监控的布线技巧
查看>>
唐山联通与丰南区政府签署“智慧城市”战略合作协议
查看>>
研究显示:广告拦截应用正在破坏互联网
查看>>
优云·小课堂 第八期:运维自动化的魅力
查看>>
稳定+性能+价格,阿里云发力ECS企业级产品
查看>>
写个软件来防止服务器网站CPU百分百
查看>>
智能城市里,“公共电话亭”的存在意味着什么?
查看>>
JVM分代垃圾回收策略的基础概念
查看>>
《交互式程序设计 第2版》一3.5 捕获简单用户交互行为
查看>>
安装操作系统需要注意的事项
查看>>
5G技术的5大猜想
查看>>
MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
查看>>
如何重现难以重现的bug
查看>>
别随便安装 Pokemon GO被曝藏恶意后门
查看>>
BBC即将推出Britflix流媒体服务:欲成为英国版Netflix
查看>>
行成于思:从Oracle到MySQL
查看>>
让数据会思考会说话,为出海企业提供多样化数据智能解决方案
查看>>
我眼中的自动化测试框架设计要点
查看>>