Python 函数的大O复杂度
我试图找出函数的复杂性。因此,对于嵌套列表,它将是O(n^2),但它也有一个条件语句,它将遍历列表中的所有元素,因此它将是O(n^3)如果条件中的一些代码遍历列表中的所有元素,一些代码运行的次数与lst中元素的数量成正比,那么时间复杂度为O(n3)Python 函数的大O复杂度,python,time-complexity,big-o,nested-lists,Python,Time Complexity,Big O,Nested Lists,我试图找出函数的复杂性。因此,对于嵌套列表,它将是O(n^2),但它也有一个条件语句,它将遍历列表中的所有元素,因此它将是O(n^3)如果条件中的一些代码遍历列表中的所有元素,一些代码运行的次数与lst中元素的数量成正比,那么时间复杂度为O(n3) 如果条件计算为true的次数与len(lst)不成正比,则时间复杂度会更低。例如,如果某个代码的运行次数是恒定的,而与列表的大小无关,则时间复杂度仅为O(n2)。您的代码显然是错误的,但时间复杂度无疑是O(n^2)如果缺少某个代码,没有人能告诉您函数
如果条件计算为true的次数与
len(lst)
不成正比,则时间复杂度会更低。例如,如果某个代码的运行次数是恒定的,而与列表的大小无关,则时间复杂度仅为O(n2)。您的代码显然是错误的,但时间复杂度无疑是O(n^2)如果缺少某个代码,没有人能告诉您函数的复杂度。例如,如果第一个some code
是break
,则复杂性为O(n)。如果它是返回它的O(1),等等。我们可以给你任何答案,这取决于我们如何填补空白。如果(O(1))
是O(1),那么做一个O(1)运算O(n^2)次仍然是O(n^2)一些代码
运行的次数与lst中的元素数量成正比,它首先遍历列表中的所有元素,所以我猜复杂性是O(n^3)。感谢you@Nonhey1在您的更新版本中,if语句中的代码没有遍历列表中的所有元素,因此您的更新版本是O(n^2)。是的,很抱歉。。。。。但是谢谢你的回答。请注意,你也知道sqrt函数的复杂性吗?@Nonhey1如果我没记错的话,有一种算法可以计算出平方根,时间与数字的位数成正比。如果您使用的是32位或64位数字,那么实际上是O(1)(因为长度是恒定的)
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.