这个等式 O(n) 的时间复杂度如何?
How is this equation O(n) time complexity?
def myFunction(mylist):
n = len(mylist)
p = []
sum = 0
for x in mylist:
if n > 100:
sum = sum + x
else:
for y in mylist:
p.append(y)
我的思路是,如果要执行else语句,里面的操作是O(n)的,因为遍历的次数取决于列表的长度。同样,我也将第一个循环理解为 O(n),从而使整个最坏情况复杂度为 O(n^2)。
显然正确答案是 O(n)。任何解释将不胜感激:)
补充一点,我们通常认为 Big-O 复杂性是在 n 变大的情况下。因此,随着 n 变大,我们不会执行第二条语句。因此它只是 O(n)
def myFunction(mylist):
n = len(mylist)
p = []
sum = 0
for x in mylist:
if n > 100:
sum = sum + x
else:
for y in mylist:
p.append(y)
我的思路是,如果要执行else语句,里面的操作是O(n)的,因为遍历的次数取决于列表的长度。同样,我也将第一个循环理解为 O(n),从而使整个最坏情况复杂度为 O(n^2)。
显然正确答案是 O(n)。任何解释将不胜感激:)
补充一点,我们通常认为 Big-O 复杂性是在 n 变大的情况下。因此,随着 n 变大,我们不会执行第二条语句。因此它只是 O(n)