递归函数与二分查找算法

1,递归函数

本质:在一个函数里在调用这个函数本身

2,递归举例

比如计算一个数的阶层

def fun(x):
    if x==1 or x==0:
        return 1
    else:
        return fun(x-1)*x
ret=fun(7)
print(ret)

3,二分查找算法

对于一个按大小排序的列表,可以利用二分查找来找到列表中某个元素的索引

l = [2, 3, 5, 10, 15, 33, 55]
def two_search(li, aim, start=0, end=None):
    end = len(li)-1 if end is None else end
    mid_index = (end - start) // 2 + start  # 3
    if start <= end:
        if li[mid_index] < aim:
            return two_search(li, aim, start=mid_index+1, end=end)
        elif li[mid_index] > aim:
            return two_search(li, aim, start=start, end=mid_index-1)  
        elif li[mid_index] == aim:
            return mid_index
        else:
            return '没有此值'
    else:
        return '没有此值'
print(two_search(l,100))

 

转载于:https://www.cnblogs.com/leiwei123/p/8746893.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值