Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 计算计算复杂性(大O)_Algorithm_For Loop_Big O_Computation Theory - Fatal编程技术网

Algorithm 计算计算复杂性(大O)

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(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)倍。如果队列操作复杂性为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?