图论
狂盗一支梅
以前是干饭人,现在还是干饭人
展开
-
【数据结构】【图论】BFS
BFS(Breadth First Search),中文名为宽度优先搜索,是横向遍历图的一种算法;这种算法必须借助队列才能够实现。 需求:输入edgeCount,startNode,edgeCount代表图有多少条边,startNode代表遍历的起点,接下来输入edgeCount组数据,每组有两个数node1与node2,代表一条边;最后输出BFS算法得到的序列,数和数之间使用空格隔开。 ...原创 2016-01-22 22:37:30 · 300 阅读 · 0 评论 -
【数据结构】【图论】DFS
DFS(Depth-First-Search),中文名称为“深度优先搜索”,是纵向遍历图的一种递归算法。 需求:输入edgeCount、startNode,然后输入edgeCount组数据,每组数据有两个数node1与node2,表示一条无向边,最后使用DFS算法输出遍历图的结果,数和数之间使用空格隔开。 一、Java代码 import java.util.Sca...原创 2016-01-23 13:16:03 · 306 阅读 · 0 评论 -
【数据结构】【图论】【最小生成树】Prime算法
一、问题 最小生成树解决的问题如下所示: 假设要在 n 个城市之间建立通讯联络网,则连通 n 个城市只需要修建 n-1条线路,如何在最节省经费的前提下建立这个通讯网? 使用Prime算法构造最小生成树,将生成树上的边的权值累加即可得到最小值。 二、Prime算法核心思想 取图中任意一个顶点 v 作为生成树的根,之后往生成树上添加新的顶点 w。...原创 2016-01-23 18:06:54 · 730 阅读 · 0 评论 -
【数据结构】【图论】【最小生成树】Kruskal算法
一、Kruskal算法核心 Kruskal算法和Prime算法一样也是计算最小生成树的一种算法。考虑问题的出发点: 为使生成树上边的权值之和达到最小,则应使生成树中每一条边的权值尽可能地小。 具体做法: 先构造一个只含 n 个顶点的子图 SG,然后从权值最小的边开始,若它的添加不使SG 中产生回路,则在 SG 上加上这条边,如此重复,直至加上 n-1 条边为止。 算法演示 ...原创 2016-01-24 10:41:53 · 265 阅读 · 0 评论 -
【数据结构】【图论】【最短路径】Dijkstra算法
一、核心思想 和Prime算法的思想几乎相同,Prime算法中是使用lowcost数组保存到生成树之间的最短距离,Dijkstra算法中使用lowcost数组保存到第一个节点的最短路径。 二、和Prime算法的不同之处 Dijkstra算法和Prime算法相似度达到了99%,和Prime算法相比,Dijkstra算法有以下几点不同之处: 1. ...原创 2016-01-24 14:21:30 · 396 阅读 · 0 评论