一、递归,在一个函数里面 调用 自己:

  pycharm的最大递归次数是997 查看与修改方法:

# # print(sys.getrecursionlimit())
# sys.setrecursionlimit(2000000000)

小例子:

# 人理解循环 神理解递归
# 算法,递归函数
# 认识递归
# 递归函数怎么读?
# 带着你写两段代码 #多大了alex,我不告诉你,alex比egon大两岁 44+2
#egon多大了,我不告诉你,egon比wusir大两岁 42+2
#wusir多大了,我不告诉你,wusir比金鑫大两岁 40+2
#金鑫40了 # age(1) n = 1 age(2)+2
# age(2) n = 2 age(3)+2
# age(3) n = 3 age(4)+2
# age(4) n = 4 40 def age(n):
if n == 4:
return 40
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]

#二分查找算法
#
# def find(lst,aim):
# mid = len(lst)//2
# if lst:
# if aim > lst[mid]:
# new_lst = lst[mid+1:]
# find(new_lst,aim)
# elif aim < lst[mid]:
# new_lst = lst[:mid]
# find(new_lst, aim)
# else:
# print(aim,mid)
# else:
# print('您要找的值不存在')
# find(l,36)                                                                                                              
def find_2(l,aim,start=0,end=None):  #通用二分查找法[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]
if end == None:end = len(l) - 1 #start = 0,end = 24
if start <= end:
mid = (end-start) // 2 + start #mid = 12
if l[mid] > aim:
ret = find_2(l,aim,start,mid-1)
return ret
elif l[mid] < aim: #
ret = find_2(l,aim,mid+1,end) #find_2(l,58,13,24)
return ret
else:
return aim,mid
else:
print('找不到这个值')
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]
print(find_2(l,17))
#什么叫阶乘: 7  #7*6*5*4*3*2*1
def f(n):
if n == 1:
return 1
else:
return n*f(n-1)

阶乘

#斐波那契数列
# 1,1,2,3,5,8,13....
# n = 10
# f(10) = f(8)+f(9)
def fib(n):
if n == 1 or n == 2:
return 1
return fib(n-1)+fib(n-2) print(fib(100))

斐波那契数列

def f1(n,a = 1, b =1,count = 1):
count+=1
if count == n:
return b
return f1(n,b,a+b,count)
print(f1(6))

斐波那契

三级菜单

http://www.cnblogs.com/zjchao/p/7799062.html

最新文章

  1. 2-6 Working with Lambdas
  2. C语言 homework(4)
  3. Shortest Palindrome
  4. /proc/sysrq-trigger的功能 介绍
  5. mongoDB知识总结
  6. onActivityResult不被执行的问题。
  7. 05 - 替换vtkDataObject中的Update方法 VTK 6.0 迁移
  8. Android实现视频录制
  9. Ehcache详细解读(转)
  10. 自定义session扫描器
  11. APNS IOS 消息推送
  12. python+selenium:解决上传文件&lt;input type=&#39;file&#39;&gt;标签属性被css的visibility隐藏导致无法定位元素的问题
  13. poj 1144 (Tarjan求割点数量)
  14. 潭州课堂25班:Ph201805201 爬虫高级 第五课 sclapy 框架 日志和 settings 配置 模拟登录(课堂笔记)
  15. 32位机和64位机下面各类型sizeof的大小
  16. LeetCode题解之Find the Difference
  17. tftp的安装
  18. 【转】mysql force Index 强制索引
  19. windows客户端远程访问linux下mysql方法
  20. 在笛卡尔坐标系上描绘函数(x*x+1)/(x*x-1)曲线

热门文章

  1. 面试题:判断两个字符串是否互为回环变位(Circular Rotaion)
  2. [Python爬虫] 之二十:Selenium +phantomjs 利用 pyquery通过搜狗搜索引擎数据
  3. e.which
  4. ubuntu下wine操作usb串口
  5. C# 关键字 Visual Studio 2012
  6. 微信小程序 - 更改button状态
  7. ant Form 常用 api
  8. cocos2d-x 3.1.1 学习笔记[11] http请求 + json解析
  9. Alternating Least Squares(ASL) for Implicit Feedback Datasets的数学推导以及用Python实现
  10. Qt笔记——元对象系统