当前位置:   article > 正文

数据结构与算法Python语言实现《Data Structures & Algorithms in Python》手写课后答案--第四章_数据结构与算法 python语言 实现维护一个名为marker的变量,此变量表示一个列表当

数据结构与算法 python语言 实现维护一个名为marker的变量,此变量表示一个列表当

第四章 递归

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

#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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/478786?site
推荐阅读
相关标签
  

闽ICP备14008679号