# 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. TreeSet 题

    QUESTION 4Given:12. import java.util.*;13. public class Explorer2 {14. public static void main(Strin ...

  2. Oracle案例02——ORA-12034: "SCOTT"."USER_TABLE" 上的实体化视图日志比上次刷新后的内容新

    最近同事在交接工作时,发现有几个schedule job没有执行成功,我这边给看了下,其中一个是由于数据库迁移,调用dblink的host主机IP在tnsnames中没有变更导致,还有一个是无法视图的 ...

  3. 【Leetcode】【Medium】Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  4. hydra 常用的命令

    1.本地调试模式运行项目  /gaea hydra /zk节点名 -r "zk://zk地址" -t "节点标识" -d -w 项目相对于$GOPATH/src ...

  5. Python初学者第六天 列表操作练习

    6day 列表练习: 1.创建一个空列表,命名为names,往里面添加old_drilver,rain,jack,shanshan,peiqi,black_girl: names = [] names ...

  6. 洛谷 P3175 [HAOI2015]按位或

    题目分析 与hdu4336 Card Collector相似,使用min-max容斥. 设\(\max(S)\)表示集合\(S\)中最后一位出现的期望时间. 设\(\min(S)\)表示集合\(S\) ...

  7. windows8安装msi软件提示2503错误的解决办法

    windows8以后的版本安装msi软件(比如nodejs.msi.Git.msi.python.msi.T ortoiseSVN.msi)的时候老师出现2503.2502的错误,究其原因还是系统权限 ...

  8. shiro密码的比对,密码的MD5加密,MD5盐值加密,多个Relme

    有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容 密码的比对   通过AuthenticatingRealm的CredentialsMatcher方法 密码的加密 ...

  9. APICloud的App怎么在手机上测试运行

    方式一: 工程->右键->云编译自定义 AppLoader,如图: 点击[编译iOS自定义loader]或者[编译Android自定义loader],会生成相应的二维码,手机扫描二维码点击 ...

  10. R语言学习笔记2——绘图

    R语言提供了非常强大的图形绘制功能.下面来看一个例子: > dose <- c(20, 30, 40, 45, 60)> drugA <- c(16, 20, 27, 40, ...