发布网友 发布时间:2022-04-26 11:36
我来回答
共1个回答
热心网友 时间:2022-06-27 23:11
【答案】:C 循环体里面是i=i*2,即每循环一次i值增加一倍,所以执行次数与n之间是以2为底的对数关系,故时间复杂度为O(log2n)。
所以复杂度为 O(根号n)
下面的程序段时间复杂度为()。for(i=1;in;i++)for(j=1;jn;j++)x=x+1;A.O(2n)B.O(n)C.O(n^2)D.O(log2n)正确答案:O(n^2)
i=s=0; //时间复杂度是O(1)while(s<n){ //时间复杂度是O(n)i++; //时间复杂度是O(n)s+=i; //时间复杂度是O(n)}//累计时间复杂度是O(1+n+n+n),即O(n)如有疑问请追问,如您满意请采纳,谢谢
从for语句看 执行n次 if语句不影响 所以时间复杂度T(n)=O(n)
标准数值:√2n.可以简化:√n.
【答案】:答案:D 解析:题目中的程序段仅包含一个for循环,因此此程序段的时间复杂度取决于for循环的时间复杂度,for循环中循环变量i的初始值为1,循环条件是i<=n,每一次循环结束后i的值自增1,因此i的值变化的范围是:1~n,循环共执行n次,所以此程序段的时间复杂度为O(n)。
时间复杂度是O(n^3)第一个for 进行n次循环 第二个for进行n+1次循环 第三个for进行n次循环乘法和赋值 设赋值和乘法的开销为a 那么 总开销为n*(n+1)*a n=a n^3+a n^2 省略小的开销得到an^3 所以时间复杂度为n^3
2.下面程序段的时间复杂度为( C )for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A.O(n2) B.O(m2) C.O(m*n) D.O(m+n)3.在一个单链表L中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行( D )。A.q一>next=p一>next;p一>...
j<=n;++j) 。。。这句执行n次 ,这句实际最大可执行的次数为n+1 for (k=1;k<=n;++k) 。。。这句执行n次 ,这句实际最大可执行的次数为n+1 {++x; s+=x} 。。。这句执行n*n次 ,所以时间复杂度为O(n^2)...