常见图算法思想

1 最小生成树

生成树:图有n个结点,用n-1条边连接起来。
最小生成树:代价最小的生成树。

1.1 普里姆算法(Prim)

点扩展:有一个集合其他节点
刚开始,起点在这个集合中,找到到这个集合的最短距离的节点,将这个节点并入这个集合,以此类推直至将所有节点并入这个集合。此集合即最小生成树。例子如《大话数据结构》P250图7-6-6.
对稠密图有优势。

1.2 克鲁斯卡尔算法(Kruskal)

边扩展:有一个邻接矩阵,存储每条边的权值
按照边的权值顺序将各个节点连接(当形成环时跳过本次连接),以此类推直至将所有节点并入这个集合。此集合即最小生成树。例子如《大话数据结构》P254-P256.
对稀疏图有优势。

2 最短路径

最短路径:图中两个节点权值和最少的路径。

2.1 迪杰斯特拉算法(Dijkstra)

点扩展:有一个集合其他节点
通过不断选择距离起点最近的顶点,基于已求出的最短路径,求得更远的顶点的最短路径,直到覆盖图中所有顶点。有点像Prim算法,但不同之处在于Prim算法计算的是已访问集合到未访问集合中各点的距离;Dijkstra算法计算的是源点到未访问集合中各点的距离。

2.2 弗洛伊德算法(Floyd)

https://blog.csdn.net/Harington/article/details/81982299

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值