算法分析第五次作业答案(卜东波)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法第五次作业答案
第1题:
答:TURE
法一:我们已知用Kruskal算法能够生成G的一棵最小生成树,而在此算法运行时最小费用边e*将被首先添加进来,从而可知最后生成的最小生成树肯定包含边e*
法二:假设边e*(代价最少的边)的两个顶点为v1和v2,图G中共有N 个点,为v1、v2、…v N。现在假设已经找出了除v1外的点全部被纳入的最优生成树,现在只要将v1以最小代价连入即可,由于e*是v1连接的代价最少的边(v1连接的其余边要付出的代价都比e*大),所以一定会选择e*连入以生成最小生成树。
第2题:
答:
1) 算法如下:
While 图G中还有环
用BFS算法遍历图G,找到一个环后删除环中费用最大的边;
返回删除了一条边后的图G;
Endwhile
消除了所有的环后最后剩下的图G即为最小生成树
2) 算法正确性证明:
使用BFS广度搜索遍历整个图,找到环后删除环中代价最大的边,之后重新遍历,每遍历一次消除一个环,最后留下的图中没有环,并且剩下的边都是相对代价小的,因此生成的是最小生成树。
3) 复杂度:
因为最多不超过n+8个边,所以环至多只有9个,所以整个BFS 遍历最多不超过9次,而BFS 算法复杂度为O(V+E)=O(n),故总的复杂度是O(n).
第3题:
(1)算法描述如下:
①初始化一个具有n 个顶点0条边的图G
②对给定的度数序列0L 进行排序得11212{,,,}d n n L d d d d d =≥≥≥……且…… ③1L 中前n d 个数均减1并舍去最后一个数得
21211L {1,1,,1,,,}n n d d n d d d d d +-=---…………
④在进行第③步处理的同时对图G 中的顶点进行连线并用2L 替换0L ; ⑤重复步骤②—④直到0L 为空,此时得到的图G 即为所求
(2)算法正确性证明:
①如果图G 具有n-1个顶点且度数序列为2L ,在图G 中添加一个顶
点n v ,使得n v 与顶点12,,,n
d v v v ……相连,得到图'G 且其度数序列为1L 。 ②如果图G 具有n 个顶点且度数序列为1L ,则图G 中必然存在顶点n v 且n v 与12,,,n
d v v v ……相连,在删除顶点n v 后得到图'G 且其度数序列为2L 。
(3)算法复杂度分析
该算法的时间消耗主要用于度数序列的排序,排序所用时间为(1)/2n n +,即时间复杂度为O(2n )。
第4题:
答:给出一个算法确定是否存在一个有效的调度,则算法如下:
1) 计算1
n i
i b =∑和1n
i i r t =∑的值 2) 比较1n i i b =∑≤1n
i i r t =∑,若成立,则为YES;否则为NO 显然算法运行时间主要为第一步的时间,容易得出T(n)=O(n)。 验证算法正确性:
1) 若1n i
i b =∑>1n i i r t =∑,则显然不管用何种调度算法都不能满足限制条
件。
2) 若1n i i b =∑≤1n
i i r t =∑,设i i i b r t =,对n 个i r 由小到大排序为''''12,......i n r r r r ,则由小到大输出对应的视频流显然为一个有效调度,即在满足等式情况下,存在有效调度。
第5题:
第6题:
1) 算法:
new line
for i = 1 to n
if SizeofCurrentLine + w i <= L
place the ith word on the line
else place the ith word on a new line
2)算法复杂度显然为O(n).
3)证明:
用数学归纳法证明