数据结构与算法Python语言实现《Data Structures & Algorithms in Python》手写课后答案--第四章

第四章 递归

代码粗糙,望大佬指出方便改进

#4.1  front为头指针,rear为尾指针
def recursion(li,front,rear):
    if front==rear or front+1==rear:
        return max(li[rear],li[front])
    return max(recursion(li,front,int((front+rear)/2)),recursion(li,int((front+rear)/2)+1,rear))
    print('空间复杂度为n;\n时间复杂度为log2(n^2)\n'+
      '过程:log2(n)+log2(n/2)+log2(n/2/2)+···\n'+
      '=log2(n)*(1/2+1/2/2+1/2/2/2+···)\n'
      '=log(n)*lof(n)')

#4.6
def text6(n):
    if n==1:
        return 1
    return text6(n-1)+1/n

#4.7  f为头指针,r为尾指针
def text7(s,f,l):
    if f==l:
        return 0
    return text7(s,f+1,l)+int(s[f])*10**(l-f-1)
#4.8
def text8():
    print('n/2+n/2/2+···+n/(2^logn)\n=(n/2)*(1+1/2+1/4+1/(2^logn))\n=n/2*log(logn)\n=nlogn')
#4.9  f为头指针,r为尾指针
def text9(li,f,r):
    if f==r or f+1==r:
        return max(li[f],li[r]),min(li[f],li[r])
    front,rear=text9(li,f,int((f+r)/2)),text9(li,int((f+r)/2+1),r)
    return max(front[0],rear[0]),min(front[1],rear[1])
#4.10
def text10(num,res=0):
    if num==1:
        return res
    return text10(num//2,res+1)

#4.11
def text11(li,f,m,r
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值