1 / 50
文档名称:

5-图论算法1.ppt

格式:ppt   页数:50页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

5-图论算法1.ppt

上传人:yixingmaoh 2016/7/11 文件大小:0 KB

下载得到文件列表

5-图论算法1.ppt

相关文档

文档介绍

文档介绍:西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China ACM/ICPC 程序设计简单算法计算机学院张淑平西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China 图论-算法图的遍历 BFS( 广搜) DFS( 深搜)最小生成树 Prim Kruskal 最短路径 Bellman-Ford Dijkstra Floyd-Warshall ? BFS 练****DFS 练****Prim 练****Kruskal 练****Bellman-Ford 练****Dijkstra 练****Floyd-Warshall 练****西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China 图的遍历?遍历要访问到图中的每一个顶点。? BFS (Breadth-First Search) ? DFS (Depth-First Search) 西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China BFS 思想—遍历篇? v 0出发,在访问了 v 0之后,搜索 v 0 的(所有未被访问的)邻接顶点 …? ,广搜图中其它顶点, 直至图中所有已被访问的顶点的邻接顶点都被访问到。? ,则再选择其中之一作为 v0 重复上述过程。直到图中所有顶点均被访问到。// 搜索过程没有回溯,是一种牺牲空间换取时间的方法。时间复杂度: O(V+E) 西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China BFS 程序基本结构定义一个队列;起始点加入队列; while( 队列不空){ 取出队头结点;若它是所求的目标状态,跳出循环; 否则,从它扩展出子结点,全都添加到队尾; }若循环中找到目标,输出结果;否则输出无解; 西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China BFS 示例: 西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China DFS 思想—遍历篇? G中每个顶点标记为未被访问,选取一个顶点 v作为搜索起点,标记其为已访问? v的每个未被访问过的邻接顶点,直到从v出发所有可达的顶点都已被访问过。? ,则再选择其中之一作为 v重复上述过程。直到图中所有顶点均被访问到。 // 时间复杂度: O(V+E) 西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China DFS 程序基本结构 void DFS(int step) { for(i=0; i<Max_Elements; i++) { if( 子结点符合条件){新子结点入栈; if( 是目标结点)输出 else DFS(step+1); 子结点出栈}}} 西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China DFS 示例西安电子科技大学计算机学院 - School of Computer Science & Engineering, Xidian University, China 最小生成树( Minimum Spanning Tree ) ? G(V,E) 是无向连通赋权图, G’(V,E ’)是包含 G中所有顶点的树,且树中各边权总和最小,则 G’是最小生成树(可能不唯一) ?容易想到,用贪心策略。 Prim Kruskal