栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

递归(python实现)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

递归(python实现)

# 递归法获取最大值
class GetMax:
    # 求arr中的最大值
    def get_max(self, arr):
        return self.process(arr, 0, len(arr)-1)

    # arr[l...r]范围上求最大值
    def process(self, arr, l, r):
        # arr[l...r]范围上只有一个数,直接返回
        if l == r:
            return arr[l]
        mid = l + ((r-l) >> 1)  # 中点
        left_max = self.process(arr, l, mid)
        right_max = self.process(arr, mid+1, r)
        return max(left_max, right_max)

递归用到了系统栈,如下图。系统栈会记录下一些必要的信息放入系统栈中,返回结果时会将结果返回到栈顶,然后继续执行。

有一种递归是可以直接计算时间复杂度的,如图
只要满足下面公式,其中以上面代码为例,则,a为有几个子过程,此时也就是求left_max 和right_max ,则a=2;b为子过程的范围,也就是N/2 则此时b= 2, d为除子过程外剩下的时间复杂度,此时为常数时间复杂度,也就是O(1)则d=0

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/754037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号