Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.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
C++ 我很难找到这些代码段的大O符号 1。 对于(i=0;i_C++_C_Data Structures_Big O - Fatal编程技术网

C++ 我很难找到这些代码段的大O符号 1。 对于(i=0;i

C++ 我很难找到这些代码段的大O符号 1。 对于(i=0;i,c++,c,data-structures,big-o,C++,C,Data Structures,Big O,对于第一个问题,第二个循环是O(N)。因此嵌套循环的复杂性,O(N^2) 对于第二个问题,您在每次迭代中都要将N除以2。它的复杂性将是O(log(N))为了可读性,您确实应该调整缩进。重复乘法是指数,重复除法是对数(指数的反函数)。使用大括号和缩进重新格式化代码。如果没有它们,很难确定哪些语句在哪些循环中。不要只记住“嵌套循环是O(n^2)”因为这并不总是正确的。如果内部循环中的条件是,比如说,j

对于第一个问题,第二个循环是
O(N)
。因此嵌套循环的复杂性,
O(N^2)


对于第二个问题,您在每次迭代中都要将
N
除以2。它的复杂性将是
O(log(N))

为了可读性,您确实应该调整缩进。重复乘法是指数,重复除法是对数(指数的反函数)。使用大括号和缩进重新格式化代码。如果没有它们,很难确定哪些语句在哪些循环中。不要只记住“嵌套循环是O(n^2)”因为这并不总是正确的。如果内部循环中的条件是,比如说,
j<100
,那么嵌套的一对循环的复杂性就是O(n)。
1. 

    for(i=0; i<N, i+=2)
    for(j=0; j<i; j+=2)
     a[i] += i*j;
    printf("Elements: ");
    for(i=N; i>0; i--)
     printf("%d ", a[i]);

2. while(N) {
 printf("%d ", N);
 N /= 2;
}