算法的主运算如下,其中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)


相关考题:

程序段s=i=0;do{i=i+1;s=s+i;}while(i=n);的时间复杂度为()。A、O(n)B、O(nlog2n)C、O(n)D、O(n/2)

算法的主要运算如下: 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)

下面的程序段的时间复杂度为【】s=0;for(i=0;in;i++)for(j=0;jm;j++)s=s+a[i][i];A.O(1)B.O(m+n)C.O(log2mn)D.O(m*n)

对于以下语句,表述正确的是 int i , j = 5 ;A.i 没有被赋初值,j 的初值为5B.i 和 j 的初值均为 5C.i 的初值为0,j 的初值为5D.i 和 j 的初值均为 0

根据下列算法判断正确的是: 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)