黑龙江大学 计算机软件学院算法习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Coursework 1
1. Exercise 1.3 (P5)
2. Exercise 1.6 (P5)
3. Please verify
(1)
)(32/2
2n n n θ=-.
(2)
)(62
3
n n θ≠.
(3) )(22
n o n =. (4)
)(22
2
n o n ≠
4. (1)Write out the recurrence for quick sort.
(2) Use a recursion tree to give an asymptotically tight solution to the recurrence you have given. (3) Verify your bound by the substitution method. 5. Use the master method to give tight asymptotic bounds for the following recurrences. a) T(n)=4T(n/2)+n. b) T(n)=4T(n/2)+n 2. c) T(n)=4T(n/2)+n 3.
Coursework 2
1.求一个非空集合中的最大的数。要求用分治策略设计算法并进行时间复杂度分析。
2.用分治策略设计一个算法,求二叉树中叶结点的个数。 3. 设计算法并证明:
给定一个由n 个实数构成的集合S 和另一个实数x,请设计一个在最坏情况下执行时间为O(n log n )的算法,使之能判断出S 中是否存在两个和等于x 的元素。
4. 根据slides 演示的过程设计一个PARTITION 算法。(不用做)
5.根据slides演示的过程设计一个计数排序(Counting Sort)算法。(不用做)Coursework 3
1
(1)矩阵连乘积A1A2A3A4的一个计算次序,使得依此次序计算矩阵连乘积所需
要的乘法次数最少。
(2)计算矩阵连乘积A1A2A3A4所需要的最少乘法次数是多少?(10分)
2.给定两个序列X=,Y=。请采用动态规划策略求出其最长公共子序列。
3.采用动态规划策略,计算{3,-2,-1,8,-3,8,-1,9,-8,6,-2,7,-3,8}的最大子段和,并给出这个最大子段和的起始下标索引和终止下标索引。
4.采用动态规划策略实现求解0-1背包问题的算法。
0-1背包问题:给定n种物品和一个背包。物品i的重量是w i,其价值为v i,背包的容量为W。问应如何选择物品装入背包,使得装入背包中的物品的总价值最大?在选择物品装入背包时,对每种物品i只有两种选择,要么装入,要么不装入,不能将物品i装入背包多次,也不能只装入物品i的一部分。因此,该问题称为0-1背包问题。
Coursework 4
1.用贪心策略设计一个算法,求解背包问题。
[背包问题:给定n种物品和一个背包,物品i的重量是w[i], 其价值是p[i], 背包的容量为c。设物品已按单位重量价值递减的次序排序。每种物品不可以装入背包多次,但可以装入部分的物品i。问应如何选择装入背包中的物品,使得背包的总价值最大?]
2.设有无数多个硬币,面值分别为1角、五分、二分和一分。请设计一个贪心算法,使得对于任意给定的面值为n分钱的纸币(n>18分钱),能够将该纸币换为等值的最少个数的硬币,并输出每种面值硬币个数。要求:
(1)说明所用的数据结构及其含义;
(2)用C/C++程序设计语言或伪代码写出算法;
(3)简要分析算法的时间复杂性。
3.设计算法实现优先队列(堆)的删除操作。
4.设计算法实现优先队列(堆)的插入操作。
5.设有一个活动的集合S={1,2,…,11}如下表所示。其中[s j,f j]是活动j的起
止时间,且f1≤f2≤…≤f11。l i是S i ={j∈S| s j≥f l
i-1}中具有最小结束时间f l
i
的活动(设l 0=0,f 0=0)。设A 是S 的包含活动1的优化解。请写出每个l i ,并据此构造出S 的包含活动1的优化解A 。最后针对此例子说明贪心选择性。
活动集合S 中活动的起止时间表
6. 有一批集装箱要装上一艘载重量为c 的轮船,其中集装箱i 的重量为W i 。现要将尽可能多的集装箱装到轮船上。设集装箱已依其重量从小到大排序,(x 1,x 2,…,x n )是最优装载问题的一个最优解,其中,x i ∈{0,1},1≤i ≤n(n 是集装箱总数),且x 1=1。请证明(x 2, x 3,…, x n )是轮船装载重量为c-w 1
,且待装船集装箱为{2,3,…,n}时相应最优装载问题的一个最优解。
Coursework 5
1.给出下图所示的四个顶点图所有3-着色法,要求画出可行解空间树。
2.考虑n=3时0-1背包问题的实例:W={30,20,20},P={100,60,60},C=40。当x[1]=1且x[2]=0时,计算Bound(3)。 3. 考虑n=3的批处理作业调度实例:
要求(1(2)写出该问题的剪枝策略(限界条件);
(3)按回溯法搜索解空间树,并利用剪枝策略对应该剪掉的子树打⨯,最
终给出该问题的解。
4. 所谓子集和问题是:给定由n 个不同正数组成的集合W={w i | w i >0,i=1,2,…,n }和正数M ,要求找出N={1,2,…,n}的所有使得M w S
i i =∑∈的子集S 。
(例如:给定n=4, W={11,13,24,7}和M=31,则相应的子集和问题的解是{3,4},{1,2,4}。) 请设计一个求解子集和问题的算法。