图算法设计

9.1求图的最小生成树

9.1.1图的所有生成树中具有边上的权值之和最小的树称为图的最小生成树。求最小生成树主要有普里姆算法克鲁斯卡尔算法。
9.1.2用普里姆算法(Prim)构造最小生成树

  普里姆算法是一种`构造性`算法。
  基于图的`邻接矩阵`g和起始顶点v实现的。
  是一种`贪心算法`

9.1.3克鲁斯卡尔算法(Kruskal)
克鲁斯卡尔算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法。
实现克鲁斯卡尔算法的关键是如何判断选取的边是否与生成树中已有的边形成回路,这可以通过并查集来解决。

  克鲁斯卡尔是一种贪心算法

9.2求图的最短路径

9.2.1 求一个顶点到其余各顶点的最短路径问题也称为单源最短路径问题,可以使用狄克斯特拉算法

是一种`贪心算法``不允许边存在负值`

9.2.2 贝尔曼-福特算法

求解连通带权图中`单源最短路径`的一种算法
允许图中`存在权值为负的边。` 
但是不能处理含`负权回路`的图。
`时间复杂度略高`

为了解决边上带有负值的单源最短路径的问题,该算法从原点逐次绕过其他顶点,通过松弛操作以缩短到达终点最短路径长度的方法。
9.2.3SPFA算法

`单源`最短路径的算法。
仍不能处理`含负权回路`。
图采用`邻接表`存储
通过`松弛操作`进行优化

9.2.4弗洛伊德算法

求图中所有`两个顶点`之间最短路径的问题也称为`多源`最短路径问题
时间复杂度为`O(n^3)`

9.3求解旅行商问题

旅行商问题(TSP),常被称为旅行推销员问题,是指一名推销员要拜访多个地点时,如何找到在拜访每个地点一次后再回到起点的最短路径。规则虽然简单,但在地点数目增多后求解却极为复杂。
9.3.2采用蛮力法求解TSP问题
邻接矩阵
9.3.3采用动态规划求解TSP问题
动态规划数组dp
9.3.4采用回溯法求解TSP问题
邻接矩阵
9.3.5采用分支限界法求解TSP问题
邻接矩阵
9.3.6采用贪心法求解TSP问题
数组

9.4网络流

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风赤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值