Python——递归

# 使用递归编写斐波那契数列
#1,1,2,3,5,8,13,21,24
# def fibo(k):
#     """
#     k 代表位置序号 1开始
#     """
#     assert k > 0, 'k值必须大于0'
#     if k in [1,2]:
#         return 1
#     # # 要求的数的前面的那个数
#     # before1 = fibo(k-1)
#     # # 要求的数的前面的前面的那个数
#     # before2 = fibo(k-2)
#     # res = before1 + before2
#     # return res
#     return fibo(k-1)+fibo(k-2)
# print(fibo(9))

#----------------------------------------------
# #使用循环实现斐波那契数列
# #1,1,2,3,5,8,13,21,24
# def fibo(k):
#     assert k > 0, 'k值必须大于0'
#     if k in [1,2]:
#         return 1
#     before1,before2 = 1,1
#     for _ in range(3,k+1): # 没有用到i可以用_代替
#         temp = before1
#         res = before1+before2
#         before1 = res
#         before2 = temp
#     return res
# print(fibo(9))

#--------------------------------------------------
# 二分查找
# 1,生成数据
from random import randint,choice
data = [randint(1,100) for _ in range(10)]
# 随机选择一个
target = choice(data)
data = sorted(data)
print('有序数组是:',data)
print("要查找的目标值:",target)
def bin_search_recusion(left,right,data_list,target):
    """
    left:左边的序号
    right:右边的序号
    data_list:要查找的列表
    target:要查找的那个数
    """
    #求中间序号值
    mid = int((left + right)/2)
    if data_list[mid] == target:
        return mid
    elif data_list[mid] < target:
        return bin_search_recusion(mid+1,right,data_list,target)
    else:
        return bin_search_recusion(left,mid-1,data_list,target)
res = bin_search_recusion(0, len(data)-1, data, target)
print(res)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值