算法设计与分析期末复习题汇总

文章目录

  • 1、选择题
    • 1.1 选择题1
    • 1.2 选择题2
  • 2、判断题
    • 2.1 判断题1
    • 2.2 判断题2
  • 3、填空题
    • 3.1 算法填空
    • 3.2 填空题2
  • 4、简答题

1、选择题

1.1 选择题1

1、下列不是动态规划算法基本步骤的是( A )。
A、找出最优解的解空间 B、构造最优解 C、算出最优解 D、定义最优解

2、最大效益优先是( A )的一搜索方式。
A、分支界限法 B、动态规划法 C、贪心法 D、回溯法

3、最长公共子序列算法利用的算法是( B )。
A、分支界限法 B、动态规划法 C、贪心法 D、回溯法

4、 回溯法解TSP问题时的解空间树是( A )。
A、子集树 B、排列树 C、深度优先生成树 D、广度优先生成树

5、下列算法中通常以自底向上的方式求解最优解的是( B )。
A、备忘录法 B、动态规划法 C、贪心法 D、回溯法

6、衡量一个算法好坏的标准是(C )。
A 运行速度快 B 占用空间少 C 时间复杂度低 D 代码短

7、以下不可以使用分治法求解的是(D )。
A 棋盘覆盖问题 B 选择问题 C 归并排序 D 0/1背包问题

8、 实现循环赛日程表利用的算法是( A )。
A、分治策略 B、动态规划法 C、贪心法 D、回溯法

9、实现最长公共子序列利用的算法是( B )。
A、分治策略 B、动态规划法 C、贪心法 D、回溯法

10、下面不是分支界限法搜索方式的是( D )。
A、广度优先 B、最小耗费优先 C、最大效益优先 D、深度优先

11、下列算法中通常以深度优先方式系统搜索问题解的是( D )。
A、备忘录法 B、动态规划法 C、贪心法 D、回溯法

12、 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。
A、重叠子问题 B、最优子结构性质 C、贪心选择性质 D、定义最优解

13、广度优先是( A )的一搜索方式。
A、分支界限法 B、动态规划法 C、贪心法 D、回溯法

14、背包问题的贪心算法所需的计算时间为( B )。
A、O(n2n) B、O(nlogn) C、O(2n) D、O(n)

15、实现最大子段和利用的算法是( B )。
A、分治策略 B、动态规划法 C、贪心法 D、回溯法

16、实现棋盘覆盖算法利用的算法是( A )。
A、分治法 B、动态规划法 C、贪心法 D、回溯法

17、下面是贪心算法的基本要素的是( C )。
A、重叠子问题 B、构造最优解 C、贪心选择性质 D、定义最优解

18、回溯法的效率不依赖于下列哪些因素( D )
A.满足显约束的值的个数 B. 计算约束函数的时间
C. 计算限界函数的时间 D. 确定解空间的时间

19、下面哪种函数是回溯法中为避免无效搜索采取的策略( B )
A.递归函数 B.剪枝函数 C。随机数函数 D.搜索函数

20、以深度优先方式系统搜索问题解的算法称为 ( D ) 。
A、分支界限算法 B、概率算法 C、贪心算法 D、回溯算法

1.2 选择题2

1、不能和final共存的关键字是( C )
A、statci B、class C、abstract D、public

2 、final不可以修饰 (D)
A、属性 B、类 C、方法 D、构造方法

3、Java中使用什么关键字修饰常量©
A、const B、float C、final D、define

4、String是一个对象,即它的默认值是(B)
A、1 B、null C、2 D、3

5、用于获取字符串长度的方法(A)
A、length() B、lengths() C、long() D、size()

6、30n,2logn,4,n! 按照渐近阶从低到高的顺序排列下列表达式:(D)
A. 4<30n<2logn C. n!<4<2logn<30n D. 4<2logn<30n

7、快速排序算法的效率取决于(B)
A、序列是否有序排列 B、划分的对称性
C.、原始序列是否逆序排列 D、原始序列是否是正序排列

8、如果一个问题采用贪心算法、动态规划算法、回溯算法、分支限界算法都可以得到最优解,对四种算法进行比较,你认为最有可能的是( B )。
A、动态规划算法效率最高
B、贪心算法效率最高
C、回溯算法效率最高
D、分支限界算法效率最高

9、队列的特性是(A)。
A、先进先出 B、后进先出 C、结点的优先级 D、随机

10、栈的特性(A)。
A、先进后出 B、后进后出 C、结点的优先级 D、随机

11、优先队列(priority queue)通常采用 数据结构来实现。(B)
A、栈 B、堆 C、队列 D、二叉查找树

12、贪心算法的基本要素是 和最优子结构性质。(D)
A、时间复杂性 B、重叠子问题 C、定义最优解 D、贪心选择质

13、一个算法应该包含如下几条性质,除了 。(C)
A、有限性 B、正确性 C、二义性 D、可终止性质

14、衡量一个算法好坏的标准是(C )。
A、运行速度快 B、占用空间少 C、时间复杂度低 D、代码短

15、下面问题(B )不能使用贪心法解决。
A、单源最短路径问题 B、N皇后问题 C、最小花费生成树问题 D、背包问题

2、判断题

2.1 判断题1

1、问题的两个要素是输入和实例。(×)

2、算法不能采用自然语言描述,必须使用程序设计语言进行描述。(×)

3、贪心法算法中不能解决0/1背包问题。(√)

4、贪心算法总是能够得到全局最优解。(×)

5、在算法设计中,时间复杂度和空间复杂度通常是可以互相转化的。(√)

6、哈希表(散列表)的查找时间复杂度一定为O(1)。(√)

7、二分搜索算法是利用分治策略实现的算法。(√)

8、最优子结构性质是贪心算法与动态规划算法的共同点。(√)

9、下列算法中通常以自底向上的方式求解最优解的是动态规划法。(√)

10、快速排序算法的平均时间复杂度为O(n^2)。(×)

2.2 判断题2

1、 归并排序算法是一种非稳定排序算法。(×)

2、 堆排序算法是通过构建大顶堆或小顶堆来实现排序的。(√)

3、 算法的时间复杂度是指在最坏情况下算法执行所需的基本操作次数。(√)

4、 哈希表(散列表)通过哈希函数将键映射到存储位置,因此哈希函数的设计对哈希表的性能至关重要。(√)

5、 动态规划算法通常用于解决具有重叠子问题和最优子结构性质的问题。(√)

3、填空题

3.1 算法填空

class Solution {
  public static int fibonacci(int n ){
        if (1、n= =0     ){
            return 0;
        }else if (2、n= =1     ){
            return 1;
        }else {
            return fibonacci(3、n-1   )+fibonacci(4、n-2     );
        }
   }
   
  public static void main(String[] args) {
        int n=4;
5Solution   . fibonacci(n);
 }
}



3.2 填空题2

1、算法的复杂性有 时间复杂性 和 空间复杂性 之分。

2、求解整数分划问题时利用的算法是 递归法

3、贪心算法可以通过 局部最优 达到全局最优。

4、 程序 是算法用某种程序设计语言的具体实现。

5、算法的 “ 确定性 ”指的是组成算法的每条指令是清晰的,无歧义的。

6、贪心方法采用 自顶向下求解的求解方式。

7、任何可用计算机求解的问题所需的时间都与其 规模 有关。

8、快速排序算法的基本思想是 分治法

9、贪心算法是一种在每一步选择中都采取最好或最优(即最有利)的选择,从而希望导致结果是 全局最好或最优 的算法。

10、堆排序算法中,构建的堆通常是一个 最大 堆或 最小 堆。

4、简答题

1、简述一下递归的三大要素。
答:
(1)第一要素:明确函数的功能。
(2)第二要素:寻找递归结束条件。
(3)第三要素:找出函数的等价关系式。

2、列举HashMap常见的5种方法。

答:put()、get()、remove()、keySet()、values()、entrySet()、containsKey()、containsValue()。

3、什么是数组,其在内存存储方式是?
答:
(1)数组对应的英文是array,是有限个相同类型的变量所组成的有序集合,数组中的每
一个变量被称为元素。
(2)数组在内存中的顺序存储,即元素之间紧密排列,既不能打乱元素的存储顺序,也不能跳过某个存储单元进行存储。

4、简述栈与队列的定义与区别。
(1)栈(stack)是一种只允许在一端进行插入或删除操作的线性数据结构。
(2)队列(queue)是只允许在一端进行插入操作,在另一端进行删除操作的线性数据结构。
(3)栈是先进后出,而队列是先进先出。

5、简述一下算法的重要特性。
答:确定性、可行性、输入、输出、有穷性

6、请解释算法的时间复杂度和空间复杂度的概念。
答:
(1)时间复杂度是指执行算法所需要的计算工作量,常用大O表示法来描述。

(2)空间复杂度是指执行这个算法所需要的内存空间。时间复杂度和空间复杂度都是评估算法性能的重要指标。

7、什么是剪枝函数?剪枝函数有哪两种?它们的作用分别是什么?
答:
(1)回溯法搜索解空间树时,通常采用剪枝函数避免无效搜索,提高回溯法的搜索效率。
(2)剪枝函数有约束函数和限界函数。
(3)约束函数在扩展结点处剪去不满足约束的子树;限界函数剪去得不到最优解的子树。

8、简述动态规划算法的主要步骤。
答:
(1)找出最优解的性质,并刻划其结构特征。
(2)递归地定义最优值。
(3)以自底向上的方式计算出最优值。
(4)根据计算最优值时得到的信息,构造最优解。

你可能感兴趣的:(Java题库,算法)