# lst = [4, 56, 178, 253, 625, 1475, 2580, 3574, 15963] # 时间复杂度. n
# # 让用户输入一个数n. 判断这个n是否出现在lst中
# n = int(input("请输入一个数字n:")) # 56
# for el in lst:
# if n == el:
# print('出现了')
# break
# else:
# print("没出现") # 使用二分法查找来实现上述功能,
# 必须是有序序列
# print(2**28) # 268435456
# print(2**26) # 134217728 # lst = [4, 56, 178, 253, 625, 1475, 2580, 3574, 15963]
#
# n = int(input("请输入一个数字n:")) # 56
#
# left = 0 # 左边界
# right = len(lst) - 1 # 末尾的索引 右边界
# while left <= right: # 当左边界大于右边界结束循环
#
# mid = (left + right) // 2 # 求中间的索引坐标
# if n < lst[mid]: # 判断你的数字和中间数的大小比较 .
# right = mid - 1 # 右边界往左移动
# elif n > lst[mid]:
# left = mid + 1 # 左边界往右移动
# else:
# print("找到了") # 找到了目标数字
# break
# else: # 当左比右大, 循环结束. 没有找到目标数
# print("没找到")
# # 0 1 2 3 4 5 6 7 8
# lst = [4, 56, 178, 253, 625, 1475, 2580, 3574, 15963] # def binary_search(lst, n, left, right):
# if left > right:
# return False
# mid = (left + right) // 2
# if n > lst[mid]:
# left = mid + 1
# # 当递归有返回值的时候. 需要写return. 否则有可能接收不到返回值
# return binary_search(lst, n, left, right)
# elif n < lst[mid]:
# right = mid - 1
# return binary_search(lst, n, left, right)
# else:
# print("找到了")
# return True
#
#
# n = int(input("请输入一个数字n:")) # 178
# ret = binary_search(lst, n, 0, len(lst)-1)
# print(ret) # 切换列表
# def binary_search(lst, n):
# if len(lst) == 0:
# return False
# left = 0
# right = len(lst) - 1
# mid = (left + right) // 2
# if n > lst[mid]:
# left = mid + 1
# # 当递归有返回值的时候. 需要写return. 否则有可能接收不到返回值
# return binary_search(lst[mid+1:], n)
# elif n < lst[mid]:
# right = mid - 1
# return binary_search(lst[:mid], n)
# else:
# print("找到了")
# return True
#
#
# n = int(input("请输入一个数字n:")) # 178
# ret = binary_search(lst, n)
# print(ret) # 递归深度
# def func():
# print("哈哈")
# func()
# func()
# python中最大的递归深度是1000 但是你永远到不了1000 998左右不同系统不一样
import sys # system python, os 操作系统
print(sys.getrecursionlimit()) #查询最大递归深度
sys.setrecursionlimit(3000) # 设置最大递归深度 最大是3000 你到不了3000

Python递归二分法的更多相关文章

  1. python - 递归 二分法

    一.一些内置函数 1.revsered  翻转,返回的是迭代器 # 将 s 倒置 s = '不是上海自来水来自海上' # 方法一 print(s[::-1]) # 方法二 s1 = reversed( ...

  2. python递归和二分法

    一.递归 1.递归就是自己调用自己 def fn(n): print(n) fn(n+1) fn(1) #递归深度官方1000 一般都递归到998 2.树形结构的遍历 import os def fn ...

  3. Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法

    一. lamda匿名函数 为了解决一些简单的需求而设计的一句话函数 # 计算n的n次方 def func(n): return n**n print(func(10)) f = lambda n: n ...

  4. 用Python递归解决阿拉伯数字转为中文财务数字格式的问题(2)--打开思路的一种方法

    几天前自己写了个将阿拉伯数字转为中文财务数字的程序.用的递归,不幸的是它是树形递归. 虽然实际过程中不太可能出现金额数字大到让Python递归栈溢出,但是始终是一块心病,这玩意终究在理论上是受限制的. ...

  5. Python递归_打印节点信息

    Python递归_打印节点信息 递归特性:1.必须由一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上一次递归都应该有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时 ...

  6. Python递归实现汉诺塔

    Python递归实现汉诺塔: def f3(n,x,y,z): if(n==1): print(x,'--->',z) else: f3(n-1,x,z,y) print(x,'--->' ...

  7. python 递归深度优先搜索与广度优先搜索算法模拟实现

    一.递归原理小案例分析 (1)# 概述 递归:即一个函数调用了自身,即实现了递归 凡是循环能做到的事,递归一般都能做到! (2)# 写递归的过程 1.写出临界条件2.找出这一次和上一次关系3.假设当前 ...

  8. python递归列出目录及其子目录下所有文件

    python递归列出目录及其子目录下所有文件 一.前言 函数的递归,简单来说,就是函数内部调用自己 先举个小例子,求阶乘 def factorial(n): if n == 0: return 1 e ...

  9. python(递归实例)

    摘要:在学习python递归知识点时,总是一知半解,似懂非懂的..在反复看视频翻资料同时,也收集案例来分析求证..通过分析下面几个案例希望能有所帮助!!! 1.用递归的方法实现阶乘... def nu ...

随机推荐

  1. Net编译原理简单

    转载:http://blog.csdn.net/sundacheng1989/article/details/20941893 首先简单说一下计算机软件运行.所谓软件运行,就是一步一步做一些事情.计算 ...

  2. ping -l 1000 -t 与ping -t的区别

    windows -l 1000的意思是规定发送的包的大小是1000字节如果不加这个参数的话,就发送包默认为32字节还有-t就是一直发送,直到手动停止

  3. MVC 接收参数时会自动解码

    MVC在接收传递过来的参数时,会自动对参数进行解码,无需手动解码 例: public ActionResult SendMsg2(string name) { return Content(name) ...

  4. 为什么S/4HANA的生产订单创建后会自动release

    在S/4HANA系统里我们观察到通过函数CO_61_ORDER_EDIT创建的生产订单会自动释放Release: 通过第86行的IF语句的条件检测不难找到原因. 变量PROFILE_TMP的类型为TC ...

  5. scanf函数读取缓冲区数据的问题

    标准I\O的缓冲类型 标准I\O根据不同的应用需求,提供了全缓冲.行缓冲.无缓冲三种缓冲方式. 全缓冲:只有当划定的缓冲区被填满或者数据读取至末尾时,才开始执行I\O操作(执行系统提供的read\wr ...

  6. SVG基本图形

    SVG 是使用 XML 来描述二维图形和绘图程序的语言 SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML ...

  7. servlet api.jar是干什么的?

    支持servlet的jar包.应该叫servlet-api.jar你如果编写过servlet就知道要用到HttpServletRequest和HttpServletResponse等对象,这些对象都是 ...

  8. bzoj2331 [SCOI2011]地板

    Description lxhgww的小名叫“小L”,这是因为他总是很喜欢L型的东西.小L家的客厅是一个的矩形,现在他想用L型的地板来铺满整个客厅,客厅里有些位置有柱子,不能铺地板.现在小L想知道,用 ...

  9. mxnet 神经网络训练和预测

    https://mxnet.incubator.apache.org/tutorials/basic/module.html import logging import random logging. ...

  10. 交叉熵Cross-Entropy

    1.交叉熵:用来描述通信中将一个概率分布的最优编码用到另一个概率分布的平均比特数 公式: 2.交叉熵是不对称的 3.交叉熵的作用是表达两个概率分布的差异性 设概率分布p(x)和q(x),两个概率分布差 ...