算法分析第五次作业答案(卜东波)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)证明:

用数学归纳法证明

相关文档
最新文档