递归实现列表求和、计算列表元素数、最大值、实现二分查找发

本文介绍了如何使用递归实现列表求和、计算元素数量、找出列表中的最大值以及递归地执行二分查找。递归函数需具备明确的结束条件、规模递减、紧密联系的重复调用等特点,并讨论了递归的效率和内存占用等优缺点。
摘要由CSDN通过智能技术生成

#1、 递归实现列表求和
def list_sum(num_List):
if len(num_List) == 1:
return num_List[0]
else:
return num_List[0] + list_sum(num_List[1:])
print(list_sum([2, 4, 5, 6, 7]))

##2、编写一个递归函数来计算列表包含的元素数
def list_sum(x):
if len(x) == 1:
return 1
return 1 + list_sum(x[1:])
print(list_sum([2, 4, 5, 6, 7]))

##3、找出列表中最大的数字
def list_max_num(lst):
if len(lst)==1:
return lst[0]
return lst[0] if lst[0]>list_max_num(lst[1:]) else list_max_num(lst[1:])
print(list_max_num([3,4,7,1,2]))

##4、递归实现二分查找法
def find(l,aim,start = 0,end = None): #find(列表,查找数,start = 列表起始位置,end =列表长度 14)
end = len(l) if end is None else end #end 不等于空,所以end = 列表长度
mid_index = (end - start) // 2 + start #计算中间位置
if l[mid_index] < aim: #中间值<查找数比较
find(l,aim,start = mid_index+1,end=end) #再次递归
elif l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值