云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 算法设计技巧与分析习题参考答案

算法设计技巧与分析习题参考答案

  • 62 次阅读
  • 3 次下载
  • 2025/5/31 1:36:19

8.16 修改Dijkstra算法,使它找出最短路径和它的长度。

1. X={1}; Y←V-{1}; λ[1]←0; pre[1]←0; 2. for y←2 to n

3. if y 相邻于1 then λ[y]←length[1,y] 4. else λ[y]← ∞ 5. end if 6. end for

7. for j←1 to n-1

8. 令y∈Y, 使得λ[y]为最小的 9. X←X∪{y} 10. Y←Y - {y} 11. for 每条边(y,w)

12. if w∈Y and λ[y]+length[y,w]< λ[w] then 13. λ[w] ←λ[y]+length[y,w] 14. pre[w] ← y 14. end if

15. end for 16.end for

输出最短路径

void PrintPath(int node) //输出格式为1→…→node { if (node==1) print(“1”); else {

PrintPath( pre[node] ); //先递归再输出 print(“→”, node); } }

13.2 考虑3着色问题,给出一个算法判断一图G=(V,E)的3着色向量c[1…n]是否是合法的。

输入:图G=(V,E),向量c[1…n]

输出:flag=true 若合法着色;否则2. for i←1 to n 3. if c[i]≠0 4. for (i,j)∈E

5. if c[j]≠0 and c[j]=c[i] 6. return false; 7. end if 8. end for 9. end if 10. end for 11. return true

flag=false 13.3 考虑3着色问题,给出一个算法判断一图G=(V,E)的3着色向量c[1…k]是否是部分的。

输入:图G=(V,E),向量c[1…k]

输出:true 若着色是部分的;否则输出false 2. for i←1 to k 3. if c[i]≠0 4. for (i,j)∈E

5. if j≤k and c[j]≠0 and c[j]=c[i] 6. return false; 7. end if 8. end for 9. end if 10. end for 11. return true

搜索更多关于: 算法设计技巧与分析习题参考答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

8.16 修改Dijkstra算法,使它找出最短路径和它的长度。 1. X={1}; Y←V-{1}; λ[1]←0; pre[1]←0; 2. for y←2 to n 3. if y 相邻于1 then λ[y]←length[1,y] 4. else λ[y]← ∞ 5. end if 6. end for 7. for j←1 to n-1 8. 令y∈Y, 使得λ[y]为最小的 9. X←X∪{y} 10. Y←Y - {y} 11. for 每条边(y,w) 12.

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com