博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 15 days
阅读量:4554 次
发布时间:2019-06-08

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

python 15 days

递归函数和二分查找

递归函数:

自己调用自己。

import syssys.setrecursionlimit(100000)def func1():    print(666)    func1()func1()
习题展示
666666666666666666666666666666666666666666........循环到998次停止
结果展示

默认最大递归深度为998

count = 0def func1(n):    n += 1    print(n)    func1(n)func1(count)
例题展示
12345........996997998
结果展示

 

def age(n):    if n == 1:        return 23    else:        return age(n-1) + 2print(age(4)) # 23 + 2 + 2 + 2
例题展示
29
结果展示

 

二分查找:

用代码写的计算方式。

二分查找是最简单的算法,比较经典的算法。

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]print(l.index(66))
例题展示
17
结果展示

 

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]count = 0for i in l:    if i == 66:        print(count)    count += 1for i in range(len(l)):    if l[i] == 47:        print(i)        break#else:    print('找不到....')
例题展示
17找不到....
结果展示

 

二分查找的代码展示

目标值:aim = 66寻找中间索引: min_index = len(l) // 2aim 与 中间索引对应的值进行比较    aim > l[min_index]:        l[min_index+1:]    aim < l[min_index]:        l[:min_index-1]    aim == l[min_index]        return min_index
例题

 

找例题中的索引位置:如下

l1 = [1, 3, 5, 7, 8, 10, 11]def binary_search(li,aim):  # 1次:[1, 3, 5, 7, 8, 10, 11] aim 8      2次 :li = [ 8, 10, 11]  8    mid_index = len(li) // 2  # 1次:min_index: 3    2 次:min_index 1    3次:0    if aim > li[mid_index]:  # 1次:8 > 7        return binary_search(li[mid_index+1:], aim) # [ 8, 10, 11]  8    elif aim < li[mid_index]:  # 2 次:8 < 10        return binary_search(li[:mid_index], aim)  # 3次: [8] 8    elif aim == li[mid_index]:        return mid_index    else:        return Noneprint(binary_search(l1,8))
例题
0找到索引的值为0
结果展示

 

转载于:https://www.cnblogs.com/juxiansheng/p/9058085.html

你可能感兴趣的文章
[转载]年薪10w和年薪100w的人,差在哪里?
查看>>
shell 日期参数
查看>>
package的使用
查看>>
括号生成
查看>>
优秀的前端需要做到什么?
查看>>
aws cli command line interface的安装与使用
查看>>
10)将地址换成常量
查看>>
cocos2d-x3.0 解释具体的新的物理引擎setCategoryBitmask()、setContactTestBitmask()、setCollisionBitmask()...
查看>>
Cocos2d-x
查看>>
FIR滤波器设计
查看>>
1005 继续(3n+1)猜想 (25 分)
查看>>
【Uva 1252】Twenty Questions
查看>>
1_访问命令行
查看>>
File操作相关
查看>>
Linux:文本处理工具
查看>>
java,for穷举,经典题目,百鸡百钱
查看>>
mysql提示Column count doesn't match value count at row 1错误
查看>>
前端--jstree--异步加载数据
查看>>
CSS定位深入理解 完全掌握CSS定位 相对定位和绝对定位
查看>>
网络体系结构
查看>>