北京航空航天大学 《算法导论》期末参考题(有一部分考到了)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1.算法分析中,记号O表示(B),记号Ω标售(A),记号Θ表示(D)
A 渐进下界
B 渐进上界
C 非紧上界
D 紧渐进界
E 非紧下界
2.以下关于渐进记号的性质是正确的有:(A)
A f(n) =Θ(g(n)),g(n) =Θ(h(n))⇒f(n) =Θ(h(n))
B f(n) =O(g(n)),g(n) =O(h(n)) ⇒h(n) =O(f(n))
C O(f(n))+O(g(n)) = O(min{f(n),g(n)})
D f(n) = O(g(n)) ⇔g(n) = O(f(n))
3. 记号O的定义正确的是(A)。
A O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤ f(n) ≤ cg(n) };
B O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤cg(n) ≤ f(n) };
C O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0有:0 ≤f(n)<cg(n) };
D O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0有:0 ≤cg(n) < f(n) };
4. 记号Ω的定义正确的是(B)。
A O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤ f(n) ≤ cg(n) };
B O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤ cg(n) ≤ f(n) };
C (g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0有:0 ≤f(n)<cg(n) };
D (g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0有:0 ≤cg(n) < f(n) };
5. T(n)表示当输入规模为n时的算法效率,以下算法效率最优的是( C )
A T(n)= T(n – 1)+1,T(1)=1
B T(n)= 2n2
C T(n)= T(n/2)+1,T(1)=1
D T(n)= 3nlog2n
6. 动态规划算法的基本要素为(C)
A 最优子结构性质与贪心选择性质
B 重叠子问题性质与贪心选择性质
C 最优子结构性质与重叠子问题性质
D 预排序与递归调用
7.下列不是动态规划算法基本步骤的是( A )。
A 找出最优解的性质
B 构造最优解
C 算出最优解
D 定义最优解
8.能采用贪心算法求最优解的问题,一般具有的重要性质为:(A)
A 最优子结构性质与贪心选择性质
B 重叠子问题性质与贪心选择性质
C 最优子结构性质与重叠子问题性质
D 预排序与递归调用
9.下面是贪心算法的基本要素的是( C )。
A 重叠子问题
B 构造最优解
C 贪心选择性质
D 定义最优解
10( D )是贪心算法与动态规划算法的共同点。
A 重叠子问题
B 构造最优解
C 贪心选择性质
D 最优子结构性质
11.使用分治法求解不需要满足的条件是(A )。
A 子问题必须是一样的
B 子问题不能够重复
C 子问题的解可以合并
D 原问题和子问题使用相同的方法解
12.实现循环赛日程表利用的算法是( A )。
A 分治策略
B 动态规划法
C 贪心法
D 回溯法
13.使用分治法求解不需要满足的条件是(A )。
A 子问题必须是一样的
B 子问题不能够重复
C 子问题的解可以合并
D 原问题和子问题使用相同的方法解
14.下列算法中不能解决0/1背包问题的是(A )
A 贪心法
B 动态规划
C 回溯法
D 分支限界法
15.以下( C )不能不能在线性时间完成排序
A 计数排序
B 基数排序
C 堆排序
D 桶排序
16.下列哪一种算法是随机化算法( D )
A 贪心算法
B 回溯法
C 动态规划算法
D 舍伍德算法
17.下列算法中通常以自底向上的方式求解最优解的( B )。
A 分治法
B 动态规划法
C 贪心法
D 回溯法
18. n个人拎着水桶在一个水龙头前面排队打水,水桶有大有小,水桶必须打满水,水流恒定。
如下 ( A ) 说法不正确?A
A 让水桶大的人先打水,可以使得每个人排队时间之和最小
B 让水桶小的人先打水,可以使得每个人排队时间之和最小
C 让水桶小的人先打水,在某个确定的时间t内,可以让尽可能多的人打上水
D 若要在尽可能短的时间内,n个人都打完水,按照什么顺序其实都一样
19.哈弗曼编码的贪心算法所需的计算时间为 ( B )。
A O(n2n)
B O(nlogn)
C O(2n)
D O(n)
20.下面关于NP问题说法正确的是( B )
A NP问题都是不可能解决的问题
B P类问题包含在NP类问题中
C NP完全问题是P类问题的子集
D NP类问题包含在P类问题中
21.背包问题贪心算法所需的计算时间为( B )
A O(n2n)
B O(nlogn)
C O(2n)
D O(n)
22.背包问题的回溯算法所需的计算时间为( A )
A O(n2n)
B O(nlogn)
C O(2n)
D O(n)
23.采用最大效益优先搜索方式的算法是( A )
A 分支界限发
B 动态规划法
C 贪心法
D 回溯法
24.在棋盘覆盖问题中,对于2k×2k的特殊棋盘(有一个特殊方块),所需的L型骨牌的个数是( A )
A ( 4k – 1)/3
B 2k /3
C 4k
D 2k
25. 下列随机算法中运行时有时候成功有时候失败的是(C )
A 数值概率算法
B 舍伍德算法
C 拉斯维加斯算法
D 蒙特卡罗算法
26.实现大整数的乘法是利用的算法( C )。
A 贪心法
B 动态规划法
C 分治策略
D 回溯法
二、填空题
1.算法的复杂性有时间复杂性和空间复杂性之分。
2.矩阵连乘问题的算法可由动态规划设计实现。
3.从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。
4.算法是由若干条指令组成的有穷序列,且要满足输入、输出、确定性和有限性四条性质。
5.快速排序算法的性能取决于划分的对称性。
6.使用二分搜索算法在n个有序元素表中搜索一个特定元素,在最佳情况下,搜索的时间复杂性为O( 1 ),在最坏情况下,搜索的时间复杂性为O( logn )。
三、解答题
1. 给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x,返回其在数组中的位置,如果未找到返回-1。
写出二分搜索的算法,并分析其时间复杂度
2.分析最有搜索二叉树和0/1背包的时间复杂度
3.试用动态规划算法实现最大子矩阵和问题:求n×m矩阵A的一个子矩阵,使其各元素之各为最大
4已知输入向量a=(1,3,4,-2),给出用FFT的蝶形操作求输出向量y的结果,并分析出FFT的计算时间复杂度。