Big o 这个循环的O表示法是什么?
我理解这是O(N^2): 但是这个呢Big o 这个循环的O表示法是什么?,big-o,time-complexity,Big O,Time Complexity,我理解这是O(N^2): 但是这个呢 Loop from i=1 to N Loop from j=1 to i Do something with i,j 它仍然是O(N^2)还是O(N log N)?对于第二个问题,运行时间将是O(1/2n^2),之后将变成O(N^2),因为我们不关心O符号中的常数。通常,logn算法涉及在每次迭代中将子问题划分为实际大小的一半。以合并排序为例。在合并排序中,每次迭代都将数组的大小分成两半。对于第二个问题,运行时间将是O(1/2n^2),
Loop from i=1 to N
Loop from j=1 to i
Do something with i,j
它仍然是
O(N^2)
还是O(N log N)
?对于第二个问题,运行时间将是O(1/2n^2)
,之后将变成O(N^2)
,因为我们不关心O
符号中的常数。通常,logn
算法涉及在每次迭代中将子问题划分为实际大小的一半。以合并排序为例。在合并排序中,每次迭代都将数组的大小分成两半。对于第二个问题,运行时间将是O(1/2n^2)
,之后会变成O(N^2)
,因为我们不关心O
符号中的常数。通常,logn
算法涉及在每次迭代中将子问题划分为实际大小的一半。以合并排序为例。在合并排序中,在每次迭代中,它将数组的大小分成一半。这也是O(N^2)
N(N-1)/2~O(N^2)
这也是O(N^2)
N(N-1)/2~O(N^2)
也就是O(n^2)。
您必须考虑最坏的情况,即代码将运行多长时间。
所以第一个循环从1到N运行。
对于该循环的每个迭代,都有第二个循环,它从1运行到i
我们知道,在最后一次迭代中,i将是N,因此它将运行O(N*N),也就是(N^2)
我们忽略大O符号中的常数
如果这些概念很难理解,试着用谷歌搜索一些教程和示例。你所需要的只是一些练习,你会得到的。还有O(n^2)。
您必须考虑最坏的情况,即代码将运行多长时间。
所以第一个循环从1到N运行。
对于该循环的每个迭代,都有第二个循环,它从1运行到i
我们知道,在最后一次迭代中,i将是N,因此它将运行O(N*N),也就是(N^2)
我们忽略大O符号中的常数
如果这些概念很难理解,试着用谷歌搜索一些教程和示例。你所需要的只是一些练习,你会得到的。啊,这很有道理!啊,这是有道理的!
Loop from i=1 to N
Loop from j=1 to i
Do something with i,j
i = 1 than j = 1
i = 2 than j = 1 to 2
i = 3 than j = 1 to 3
i = 4 than j = 1 to 4
…….
…
i = N than j = 1 to N
So for total is 1 + 2 + 3 + 4 + …. + N = (N * (N+1))/2 ~ O(N^2).