🏷️ 知识点:算法和算法分析
一个算法应该具有()等重要特性。
A. 可维护性、可读性和可行性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和可靠性 D. 可读性、正确性和可行性
[tag_link]
正确答案:B
下列关于算法的说法中,正确的是()。
A. 算法的时间效率取决于算法执行所花的CPU 时间 B. 在算法设计中不允许用牺牲空间效率的方式来换取好的时间效率 C. 算法必须具备有穷性、确定性等五个特性 D. 通常用时间效率和空间效率来衡量算法的优劣
[tag_link]
正确答案:C
某算法的时间复杂度为O(n²), 则表示该算法的()。
A. 问题规模是n² B. 执行时间等于n² C. 执行时间与n² 成正比 D. 问题规模与n² 成正比
[tag_link]
正确答案:C
若某算法的空间复杂度为O(1), 则表示该算法()。
A. 不需要任何辅助空间 B. 所需辅助空间大小与问题规模n 无关 C. 不需要任何空间 D. 所需空间大小与问题规模n 无关
[tag_link]
正确答案:B
下列关于时间复杂度的函数中,时间复杂度最小的是()。
A. Ti(n)=nlog₂n+5000n B.T₂(n)=n²-8000n C. T₃(n)=nlog₂n-6000n D.T₄(n)=20000log₂n
[tag_link]
正确答案:D
下列算法的时间复杂度为()。 void fun(int n){ void fun(int n){ int i=1 ; while(i<=n)i=i *2; int i=1 ; while(i<=n) i=i *2;
A. O(n) B.O(n²) C.O(nlog₂n) D.O(log₂n)
[tag_link]
正确答案:D
下列算法的时间复杂度为()。void fun(int n){int i=0;while(iii<=n)i++;}A.O(n) B. O(nlog₂ n) C.O(³n) D.O(√n)08. 某个程序段如下:
[tag_link]
正确答案:C
下列算法的时间复杂度为()。 void fun(int n){ int i=0; while(iii<=n) i++; }
A. O(n) B. O(nlog₂ n) C.O(³n) D.O(√n)
[tag_link]
正确答案:C
某个程序段如下: for(i=n-1;i>1;i–)for(j=1;j<i;j++)if(A[j]>A[j+1])A[j] 与 A[j+1] 对换;其中n 为正整数,则最后一行语句的频度在最坏情况下是()。A.O(n) B.O(nlog₂n) C.O(n³) D.O(n²) for(i=n-1;i>1;i–) for(j=1;j<i;j++) if(A[j]>A[j+1]) A[j] 与 A[j+1] 对换; 其中n 为正整数,则最后一行语句的频度在最坏情况下是()。
A. O(n) B.O(nlog₂n) C.O(n³) D.O(n²)
[tag_link]
正确答案:D
下列程序段的时间复杂度为()。 if(n>=0){for(int i=0;i<n;i++)for(int j=0;j<n; j++)printf(" 输入数据大于或等于零\n")else{for(int j=0;j<n;j++)printf(" 输入数据小于零\n") if(n>=0){ for(int i=0;i<n;i++) for(int j=0;j<n; j++) printf(" 输入数据大于或等于零\n") else{ for(int j=0;j<n;j++) printf(" 输入数据小于零\n")
A. O(n²) B.O(n) C.O(1) D.O(nlog₂n)
[tag_link]
正确答案:A
下列算法中加下划线的语句的执行次数为()。 intfor(i=1;m=0,i,j; int for(i=1; i< =n;i++) for(j=1;j<=2*i;j++) m++;
A. n(n+1) B. n C.n +1 D. n²
[tag_link]
正确答案:A
下列函数代码的时间复杂度是()。 int Func(int n){if(n==1)return 1;else return 2Func(n/2)+n; int Func(int n){ if(n==1)return 1; else return 2Func(n/2)+n;
A. O(n) B.O(nlog₂n) C.O(log₂n) D.O(n²)
[tag_link]
正确答案:C
分析下列各程序段,求出算法的时间复杂度。 ① i=1;k=0;while(i<n-1){k=k+10i;i++;② y=0;while((y+1)(y+1)<=n)y=y +1 ;③ for(i=0;i<n;i++)for(j=0;j<m;j++)a[i][j]=0; ① i=1;k=0; while(i<n-1){ k=k+10i; i++; ② y=0; while((y+1)(y+1)<=n) y=y +1 ; ③ for(i=0;i<n;i++) for(j=0;j<m;j++) a[i][j]=0;
[tag_link]
B