Algorithm 计算计算复杂性(大O)
第一个For循环的值为n,第二个嵌套循环的值为n-1。那么这会使O(n): O(2n-1)只要做(n+n)-1 或者通过做(n*n)-1是O(n^2-1)Algorithm 计算计算复杂性(大O),algorithm,for-loop,big-o,computation-theory,Algorithm,For Loop,Big O,Computation Theory,第一个For循环的值为n,第二个嵌套循环的值为n-1。那么这会使O(n): O(2n-1)只要做(n+n)-1 或者通过做(n*n)-1是O(n^2-1) 谢谢你的帮助,我只是想澄清一下。我的猜测是,因为我们有一个嵌套的For循环,所以我们必须乘以n乘以n-1,然而我只是认为我可以通过得到其他人的意见来更好地保证自己 多亏了斯莫尔才得到了答案。因为循环不是嵌套的,所以大O应该是O(2n-1)。对于循环,有两个独立的(非嵌套的)n项目排队,然后n项目出列,复杂性为排队或出列复杂性的O(n)倍。如果
谢谢你的帮助,我只是想澄清一下。我的猜测是,因为我们有一个嵌套的For循环,所以我们必须乘以n乘以n-1,然而我只是认为我可以通过得到其他人的意见来更好地保证自己 多亏了斯莫尔才得到了答案。因为循环不是嵌套的,所以大O应该是O(2n-1)。对于循环,有两个独立的(非嵌套的)
n
项目排队,然后n
项目出列,复杂性为排队或出列复杂性的O(n)倍。如果队列操作复杂性为O(1),则过程的复杂性为O(n),但如果队列操作复杂性为O(ln),则过程的复杂性为O(n ln)。提示:我没有看到嵌套的for循环。啊。。如果它不是嵌套的,那么我们只是加上,所以答案是O(2n-1)?O(2n-1)相当于O(n)。嗯,如果给定O(2n-1)和O(n)之间的选择,我应该选择O(n)?通常,一个是简单的形式,而不是更复杂的形式。对于大O,你关心的是当n接近无穷大时会发生什么,所以当n接近无穷大时,2n-1接近n,因此O(2n-1)->O(n)
Algorithm 1. QUEUESTUFF(n)
Input: Integer n
1) Let Q = an empty Queue
2) For i = 1 to n
3) Q.Enqueue(i)
4) End For
5) For i = 1 to n-1
6) Let X = Q.Dequeue()
7) End For
8) Let X = Q.Dequeue()
Output: The contents of X
What is the computational complexity O(n) for algorithm QUEUESTUFF?