目录
8.(真题)下列函数的时间复杂度是( D )。 int func(int n){ int i=0,sum=0; while(sum)>
1. 一个算法应该是(D)
A. 程序
B. A和C
C. 要满足五个基本特性
D. 问题求解步骤的描述
2. 某算法的时间复杂度为O(n²),表明该算法的( D )
A. 执行时间等于n²
B. 问题规模是n²
C. 问题规模与n²成正比
D. 执行时间与n²成正比
3. 以下算法的时间复杂度是( D ) void fun(int n){ int i=1; While(i<=n) i=i*2; }
A. O(n²)
B. O(nlog2n)
C. O(n)
D. O(log2n)
4. 已知两个长度分别为m和n的升序链表,若将它们合并为长度为m+n的一个降序链表,则最坏情况下的时间复杂度是( B )
A. O(mn)
B. O(max(m,n))
C. O(n)
D. O(min(m,n))
5. 以下算法中加下画线的语句的执行次数是( A )。 int m=0,I,j; for (i=1;i<=n;i++) for(j=1;j<=2*i;j++) m++;
A. n(n+1)
B. n²
C. n
D. n+1
6. 下列是动态规划法而不是分治法的基本要素的是( D )
A. 定义最优解
B. 构造最优解
C. 算出最优解
D. 子问题重叠性质
7.(真题)下列程序段的时间复杂度是( B )。 count=0; for(k=1;k<=n;k*=2) for(j=1;j<=n;j++) count++;
A. O(n²)
B. O(nlog2n)
C. O(n)
D. O(log2n)
8.(真题)下列函数的时间复杂度是( D )。 int func(int n){ int i=0,sum=0; while(sum<n) sum+=++i; return i; }
A. O(logn)
B. O(n)
C. O(nlogn)
D. O(√𝒏)
9. 下列不是动态规划算法基本步骤的是( C )
A. 构造最优解
B. 定义最优解
C. 找出最优解的性质
D. 算出最优解
10. 衡量一个算法好坏的标准是 ( C )
A. 代码短
B. 占用空间少
C. 时间复杂度低
D. 运行速度快
11. 广度优先是 ( A ) 的一搜索方式
A. 分支界限法
B. 动态规划法
C. 贪心法
D. 回溯法
12. 下面是贪心算法的基本要素的是 ( C )
A. 重叠子问题
B. 构造最优解
C. 贪心选择性质
D. 定义最优解
13. 以深度优先方式系统搜索问题解的算法称为 ( B )
A. 分支界限算法
B. 回溯算法
C. 概率算法
D. 贪心算法
14. 贪心算法与动态规划算法的主要区别是 ( C )
A. 定义最优解
B. 最优子结构
C. 贪心选择性质
D. 构造最优解
15. 以下关于算法的说法,正确的是 ( B )
A. 在算法设计中不允许用牺牲空间的方式来换取好的时间效率
B. 算法必须具备有穷性、确定性等五个特性
C. 通常用时间效率和空间效率来衡量算法的优劣
D. 算法的时间效率取决于算法执行所花费的CPU时间
16. 一个递归算法必须包括 ( A )
A. 终止条件和递归部分
B. 选代部分
C. 终止条件和迭代部分
D. 递归部分
17. 算法分析的目的是 ( A )
A. 分析算法的效率以求改进
B. 分析算法的可读性和文档性
C. 研究算法中输入与输出的关系
D. 找出数据结构的合理性
18. 计算算法的时间复度属于 ( A )
A. 事前分析估算的方法
B. 事后分析估算的方法
C. 事前统计的方法
D. 事后统计的方法
19. 算法的时间复杂度与( D )有关
A. 源程序的程度
B. 计算机硬件的运行速度
C. 编译后执行程序的质量
D. 问题规模
20. 有以下算法,其时间复杂度为( D )。 void fun(int n){ int i=0; while (i*i*i<=n) i++; }
A. O(nlogn)
B. O(n)
C. O(√𝒏)
D. O(∛𝒏)
21. 备忘录法是哪种算法的变形( C )
A. 贪心法
B. 分治法
C. 动态规划
D. 回溯法
22. 使用分治法求解不需要满足的条件是 ( A )
A. 子问题必须是一样的
B. 子问题的解可以合并
C. 原问题和子问题使用相同的方法解
D. 子问题不能够重复
23.二分搜索算法是利用( B )实现的算法。
A. 贪心法
B. 分治策略
C. 回溯法
D. 动态规划法