算法设计分析期中试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《算法设计与分析》期中试卷
一、叙述分治算法的基本思想及一般算法设计模式;
二、叙述动态规划算法的基本步骤及动态规划算法的基本
要素;
三、改进课本P74的Lcs算法,使改进算法不用数组b亦
可在O(m+n)的时间内构造最长公共序列;
四、求下列函数的渐近表达式
(1). 3n2+10n
(2).n2/10+2n
(3)21+1/n
(4)logn3
(5)10log3n
五、对于下列各组函数发f(n)和g(n),确定f(n)=O((g(n)))
或者f(n)= ((g(n)))或者f(n)=θ((g(n))),并简述理由
(1). f(n)=logn2 , g(n)=logn+5;
(2). f(n)=logn2 , g(n)= √n;
(3), f(n)=n, g(n)= logn2;
(4). f(n)=nlogn+n,g(n)=logn;
(5). f(n)=10.g(n)=log10;
(6). f(n)=log2n g(n)=logn
(7). f(n)=2n g(n)= 3n;
(8). f(n)=2n g(n)= 100n2;
六、设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当
搜索元素x不再数组中时,返回小于x的最大元素位置i和大于x 的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x 在数组中的位置
七、设a[0:n-1]是有n个元素的数组,k(0<=k<=n-1)是非负整数。
试设计一个算法将子数组a[0:k]与a[k+1:n-1]换位。要求算法在最坏的情况下耗时O(n),且只用到O(1)的辅助空间。
八、在一个由元素组成的表中出现次数最多的元素称为众数。试写
一个寻找众数的算法,并分析其计算复杂性。
九、设计一个O(n2)时间的算法,找出由n个数组成的序列的最长
单调递增子序列。
十、给定n中物品和一背包,物品i的重量是ω,体积是b i,其价
值为v i ,背包的容量为C,容积为D。问:应该如何选择装入背包中的物品,使得装入背包中的物品的总价值最大?在选择装入背包的物品时,对每种物品i只有两种选择,即装入背包或不装入背包,不能将物品i装入背包多次,也不能只装入部分的物品i。
试设计一个解此问题的动态规划算法,并分析算法的计算复杂性。