算法的主运算如下,其中i的初值为1,s的初值为0,“←”为赋值号。 while i<n do { for j←1 to n do s←s+a[i,j] i←i*2; 则该算法的时间复杂度为 ( )A.O(2n)B.O(n+log2n)C.O(nlog2n)D.O(n2)
算法的主运算如下,其中i的初值为1,s的初值为0,“←”为赋值号。 while i<n do { for j←1 to n do s←s+a[i,j] i←i*2; 则该算法的时间复杂度为 ( )
A.O(2n)
B.O(n+log2n)
C.O(nlog2n)
D.O(n2)
相关考题:
算法的主要运算如下: While i<n do { s=0; While s<n do { s=s+1; } i=i+1; } 其中i的初值为0,s初值为0,“=”为赋值号。该算法的时间复杂度为()A.O(2n)B.O(n+log2n)C.O(nlog2n)D.O(n2)
算法的主要运算如下,其中i的初值为0,s初值为0,“=”为赋值号。 While i<n do { s=0; While s<n do { s=s+1; } i=i+1; } 该算法的时间复杂度为()A.O(2n)B.O(n+log2n)C.O(nlog2n)D.O(n2)
根据下列算法判断正确的是: Step1:对循环控制变量i赋初值,n赋初值为0; Step2:判断i>10是否成立,若成立,则执行step3,否则执行Step4; Step3:循环控制变量i加1,n=i再转到step2; Step4:输出n。A.若i的初值为1,则最终输出结果n=10。B.若i的初值为0,则最终输出结果n=9。C.若i的初值为1,则最终输出结果n=9。D.若i的初值为1,则最终输出结果n=0。
分析下面语句段执行的时间复杂度。 (1)for (int i=0; i<n; ++i) { ++p; } (2) for (int i<0; i<n; ++i) { for (int j =0; j<m; ++j) { ++p; } } (3) i = 1; while(i <= n) { i *= 3; } (4) int i = 1; int k = 0; do { k = k+10*i; ++i; } while(i!=n);
下面两个程序段中,变量sum与i的初值均相同,在()情况下,两个程序段的执行结果不同。 (1)while(i<=10) (2)do { { sum+=i; sum+=i; i++; i++; } }while(i<=10) ;A.i的初值大于10B.i的初值小于10C.任意条件D.sum的初值为0
在数组A[0,1,……,n-1]中查找给定值K的算法大致如下: i=n-1; While(i>=0(A[i]!=k)) i--; return i; 该算法的时间复杂度为 () A O(n) B 无法确定 C O(n-i) D O(n-i+1)