python基础-day15

about built-in function,
map()和filter()一点辨识,
前者侧重在对源数据进行某种加工,进而产生新的数据,
后者侧重在对源数据进行某种条件的过滤,进而产生新的数据,


# 初识递归

def func1():
    print(666)
    
while True:
    func1()
    
#*****************************分割线
import sys
sys.setrecursionlimit(10000)    #更改递归层数的限制,
def func1(n):
    n += 1
    print(n)
    func1(n)
func1(0)

# 执行一次开辟一个空间,python对内存有一个保护机制,递归到一定层数,就会自我保护。


# 二分法递归结合写法
l = [2, 3, 5, 10, 15, 33, 55]

#这种方法没有调通,因为对列表进行了切片,索引比较混乱
def two_search(li, aim):
    mid_index = (len(li)-1) // 2  # 3
    if li[mid_index] < aim:
        return two_search(li[mid_index+1:],aim)
    elif li[mid_index] > aim:
        return two_search(li[:mid_index],aim)  #([2,3,5],3)
    elif li[mid_index] == aim:
        return mid_index
    else:
        return '没有此值'
print(two_search(l,17))


#这种方法是正确的
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)  #([2,3,5],3)
        elif li[mid_index] == aim:
            return mid_index
        else:
            return '没有此值'
    else:
        return '没有此值'
print(two_search(l,100))

https://blog.csdn.net/lovesummerforever/article/details/24588989

这个博客里写了递归与非递归两种方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值