北京大学算法设计与分析课期末试题.docx
- 文档编号:26584167
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:9
- 大小:37.65KB
北京大学算法设计与分析课期末试题.docx
《北京大学算法设计与分析课期末试题.docx》由会员分享,可在线阅读,更多相关《北京大学算法设计与分析课期末试题.docx(9页珍藏版)》请在冰豆网上搜索。
北京大学算法设计与分析课期末试题
部资料,请注明出处,合作。
大学信息科学技术学院考试试卷
考试科目:
算法设计与分析:
学号:
考试时间:
2009年6月9日任课教师:
题号
一
二
三
四
五
六
七
八
总分
分数
阅卷人
考场纪律
1.请持学生证入场考试,并按指定座位就座;除必要的文具和教师指定的用具用书外,其他所有物品包括手机、呼机、MP3、电子词典、书籍、笔记、纸等严禁带入座位,必须放在指定位置。
凡有试题印制问题请向监考教师提出,不得向其他考生询问。
2.认真、诚实、独立并在规定时间完成答卷,严禁任何形式的违纪作弊行为;否则,本答卷成绩以0分记,并根据《大学本科考试工作与学术规条例》给予纪律处分。
3.提前交卷的考生不要在考场逗留,不要在门口、窗外大声喧哗。
考试结束时间到,请停止答卷,在座位等候监考教师收卷并清点完毕,方可离开考场;考题和试卷不得带出考场。
以下为试题和答题纸,共9页。
一、填空题(选做5道,10分)
1.用矩阵幂的方法求斐波那契数,其运行时间为()。
2.对于一个可以用动态规划法求解的问题,要求问题既要满足
()的特性,又要具有大量的()。
3.对于一个可以用贪心法求解的问题,不仅要求问题满足
()的特性,还应证明其贪心策略的()。
4.设有n个栈操作(PUSH、POP、MULTIPOP)的序列,作用于初始为空的栈S。
不区分三种操作,则每个操作的最坏运行时间为(),平摊运行时间为()。
5.三种平摊分析的方法分别为()、()、()。
6.四后问题的搜索空间为()树;0-1背包问题的搜索空间为()树;巡回售货员问题的搜索空间为()树。
7.()法的求解目标是找出解空间树中满足约束条件的所有解,而()法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。
8.回溯法一般以()优先的方式搜索解空间树,
而分支限界法则一般以()优先或以最小耗费优先的方式搜索解空间树。
二、单项选择题(10分)
1.
装订线内不要答题
下列关于排序算法的叙述,不正确的是?
()
A)堆排序的最差情形运行时间为Θ(nlgn)
B)快速排序平均情形运行时间为Θ(nlgn)
C)任何排序算法的最差情形运行时间都不可能比Ω(nlgn)更小
D)插入排序在最好情形下的运行时间为Θ(n)
2.对于课堂讲解的线性时间找第i小的元素的算法,()
下列叙述中不正确的是?
A)算法第一步中可以按每五个元素一组找中位数;
B)算法第一步中可以按每七个元素一组找中位数;
B)算法第一步中不能按每三个元素一组找中位数;
D)如果要求的n个元素的中位数,则中位数一定是第一步中找到的中位数中的某一个。
3.主方法可以求解满足形如下式的递推方程,()
则下列关于方程中的约束中不准确的是?
A)对于系数a,必须满足a≥1
B)对于系数b,必须满足b>1
C)若对于常数ε>0,f(n)=O(nlogba-ε),则T(n)=Θ(nlogba)
D)若f(n)=O(nlogba),则T(n)=Θ(nlogbalogn)
4.下列哪些问题不能用贪心法求解?
()
A)霍夫曼编码问题B)单源最短路径问题
C)0-1背包问题D)最小生成树问题
5.可合并堆上可以不包含下列哪个操作?
()
A)DECREASE-KEY(H,x,k)B)UNION(H1,H2)
C)INSERT(H,x)D)EXTRACT-MIN(H)
6.不同堆上插入操作最差情形下的开销或平摊开销,()
对二叉堆、二项堆和斐波那契堆,下列选项中描述错误的是?
A)二叉堆为Θ(lgn)B)二项堆为O(lgn)
C)斐波那契堆为Θ
(1)D)三种堆的开销都是Θ(lgn)
7.关于网络流的割,下列选项中错误的是?
()
割(S,T)是流网络G=(V,E)的一个划分,其中s∈S,t∈T。
如果f是G上的流,那么流经割的净流量为f(S,T),割(S,T)上的容量定义为c(S,T)。
A)|f|≤c(S,T)B)f(S,T)=|f|
C)f(s,V-s)=|f|D)f(S-s,V)=|f|
8.下列随机算法一定有解但解不一定正确的是?
()
A)SherwoodB)LasVegas
C)MonteCarloD)三者都不是
9.在快速排序算法中引入随机过程的主要目的是什么?
()
A)改善确定性算法的平均运行时间
B)保证算法总能在O(nlgn)时间结束
C)避免了算法最坏情况下的发生
D)改善了确定性算法最坏情形下的平均运行时间
10.用MonteCarlo方法估计四后问题回溯算法的效率。
()
五次实验结果分别为<1,4,2>、<2,4,1,3>、<4,2>、<3,1,4,2>、<1,3>,则解空间中的结点数估计为?
A)16B)16.2C)17D)16.5
三、社会名流(20分)
在n个人中,一个被所有人知道但却不知道别人的人,被定义为社会名流。
现在的问题是如果存在,试找出该社会名流。
你可以使用的唯一方式是询问:
“请问你知道那个人吗?
”请给出提问次数为O(n)的算法,写出伪代码,分析算法的正确性,并给出算法运行时间的精确分析(即O(n)中隐藏的系数)。
(提示:
当你问A是否认识B时,如果A认识B,则A不是社会名流;如果A不认识B,则B不是社会名流)
四、地板覆盖(20分)
用2*1的地板块覆盖3*n的地面有多少种方案?
如下图是一个覆盖的例子,函数fn可用于求解这个问题,请说明fn算法的正确性,并说明算法运行时间的上界和下界。
intfn(intn){
if(n%2==1)return0;
int[]f=newint[n+1];
f[0]=1;
for(inti=2;i<=n;i+=2){
f[i]=f[i-2]*3;
for(intj=i-4;j>=0;j-=2)
f[i]+=f[j]*2;
}
returnf[n];
}
五、田忌赛马(20分)
装订线内不要答题
你一定听过田忌赛马的故事吧?
如果3匹马变成n匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。
赢一局,田忌可以得到200两银子,输一局,田忌就要输掉200两银子。
已知国王和田忌的所有马的奔跑速度,并且所有马奔跑的速度均不相同,现已经对两人的马分别从快到慢排好序,请设计一个算法,帮助田忌赢得最多的银子。
写出伪代码,证明算法的正确性,并分析算法的复杂度。
(提示:
可以设计一个贪心策略的算法,面对国王每匹顺序出场的马,如果田忌的马快,就派最快的出场;否则派最慢的马出场)
六、(20分)给出n项作业
,对应每项作业有一个运行时间
,在m个处理器上调度这些作业,使完成的时间最小。
完成的时间定义为在所有的处理器中运行时间最长的处理器运行的时间。
采用如下的近似算法:
即,按照原始给定的作业顺序:
,把每一项作业分配给当前情况下最近可用的那个处理器,使该作业尽可能早被处理(其它没有任何约束)
1.试证明该算法的近似度为
。
(10分)
2.构造边界情况,说明这个界是紧的。
(10分)
(提示:
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京大学 算法 设计 分析 期末 试题