python - 函数的大 O 复杂度
问题描述
def x(lst):
z = 0
for a in range(len(lst)):
for b in range(len(lst)):
mx = lst[0][0]
if mx > z:
z = mx
return z.
我试图找到函数的复杂性 Big O。所以对于嵌套列表,它会是 O(n^2),但它也有一个条件语句会遍历列表中的所有元素,那么它会是 O(n^3) 吗?
解决方案
如果some code
在条件中遍历列表的所有元素,并且some code
运行的次数与 中的元素数量成正比lst
,那么时间复杂度将为 O(n 3 )。
如果条件评估为真的次数与不成比例,len(lst)
则时间复杂度会更低。例如,如果some code
运行的次数是恒定的而不管列表的大小,那么时间复杂度将仅为 O(n 2 )。
推荐阅读
- python - AttributeError:“Timedelta”对象没有属性“dt”
- javascript - 将画布另存为图像按预期工作,但图像像素化严重
- android - 如何使一个属性只能在 Kotlin 的类内部发生变异?
- linux - 在屏幕imx6ul上显示不呈现正确的颜色
- firebase - 读取使用 Firestore 开发的应用程序的用户数据时出现问题
- visual-studio-code - 使用此错误构建 ASP.NET 项目:Microsoft.AspNetCore.Cryptography.Internal.dll 中的“System.DllNotFoundException”
- python - OpenCV Python无法从路径中带有空格的外部硬盘读取图像
- mysql - 在创建 Eloquent 模型之前设置一个唯一的字段值
- c - 为什么搜索功能中的年龄不打印?
- three.js - 具有环境光强度的 Three.js 片段着色器