栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python复杂度(运行时)

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

Python复杂度(运行时)

好的,因为这是家庭作业:

这是代码:

def f2(L):    sum = 0    i = 1    while i < len(L):        sum = sum + L[i]        i = i * 2    return sum

它显然取决于len(L)。

因此,让我们看一下每一行的成本:

sum = 0i = 1# [...]return sum

显然,这些时间是恒定的,与L无关。在循环中,我们有:

    sum = sum + L[i] # time to lookup L[i] (`timelookup(L)`) plus time to add to the sum (obviously constant time)    i = i * 2 # obviously constant time

循环执行了多少次?它显然取决于L的大小。

loops(L)

所以我们的整体复杂度为

loops(L) * (timelookup(L) + const)

作为我的好人,我会告诉您列表查找在python中是恒定的,因此归结为

O(loops(L))
(如big-O约定所暗示的,常量因子被忽略)

而你多久循环的基础上

len()
L

(a)列表中的项目的频率(b)列表中的项目的频率两倍?

(c)减少频率,因为(d)列表中的项目比(b)频率更高?



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

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

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