2024-05-20 21:00:41 发布
网友
result = [] for i in n: for jj in range(len(m)): if jj < 3: result.append((n,m)) else: jj = len(m)
What is the correct O time complexity for this?
内部循环内语句的时间复杂度为O(1)。因为,它只是一个比较和一个变量赋值,而len(m)的计算是在O(1)中完成的。剩下的很简单:两个嵌套循环,分别进行n和m迭代。因此,时间复杂度为O(m * n)
O(1)
len(m)
n
m
O(m * n)
答案是O(n^2 + n * m)。内部循环最多执行三次,在每一次迭代中,您都在执行以下操作:result.append((n,m))。这种方法的时间复杂度是O(n+m),因为您将在列表result中分别添加两个大小列表n和m。这意味着在每次迭代中要执行三次O(n+m)操作,这意味着操作的总数是O(3 * n * (n + m)) = O(n^2 + n * m)
O(n^2 + n * m)
result.append((n,m))
O(n+m)
result
O(3 * n * (n + m)) = O(n^2 + n * m)
编辑:我使用n和m来交换列表及其大小,但我想这是可以理解的
内部循环内语句的时间复杂度为
O(1)
。因为,它只是一个比较和一个变量赋值,而len(m)
的计算是在O(1)
中完成的。剩下的很简单:两个嵌套循环,分别进行n
和m
迭代。因此,时间复杂度为O(m * n)
答案是
O(n^2 + n * m)
。内部循环最多执行三次,在每一次迭代中,您都在执行以下操作:result.append((n,m))
。这种方法的时间复杂度是O(n+m)
,因为您将在列表result
中分别添加两个大小列表n
和m
。这意味着在每次迭代中要执行三次O(n+m)
操作,这意味着操作的总数是O(3 * n * (n + m)) = O(n^2 + n * m)
编辑:我使用
n
和m
来交换列表及其大小,但我想这是可以理解的相关问题 更多 >
编程相关推荐