96SEO 2026-02-19 22:29 9
源最短路径--Bellman-Ford算法四、多源最短路径--Floyd-Warshall算法

最短路径问题从在带权有向图G中的某一顶点出发找出一条通往另一顶点的最短路径最短也就是沿路径各边的权值总和达到最小。
v∈Vv∈V的最短路径。
Dijkstra算法就适用于解决带权重的有向图上的单源最短路径问题同时算法要求图中所有边的权重非负。
一般在求解最短路径的时候都是已知一个起点和一个终点所以使用Dijkstra算法求解过后也就得到了所需起点到终点的最短路径。
针对一个带权有向图G将所有结点分为两组S和QS是已经确定最短路径的结点集合在初始时为空初始时就可以将源节点s放入毕竟源节点到自己的代价是0Q
为空即所有节点都已经查找过一遍并确定了最短路径至于一些起点到达不了的结点在算法循环后其代价仍为初始设定的值不发生变化。
Dijkstra算法每次都是选择V-S中最小的路径节点来进行更新并加入S中所以该算法使用的是贪心策略。
Dijkstra算法存在的问题是不支持图中带负权路径如果带有负权路径则可能会找不到一些路径的最短路径。
顶点的下标映射关系std::vectorstd::vectorW
srci){path.push_back(parenti);parenti
pPath[parenti];}path.push_back(srci);reverse(path.begin(),
parentPath);g.PrintShortPath(s,
Dijkstra算法只能用来解决正权图的单源最短路径问题但有些题目会出现负权图。
这时这个算法就不能帮助我们解决问题了而bellman—ford算法可以解决负权图的单源最短路径问题。
它的优点是可以解决有负权边的单源最短路径问题而且可以用来判断是否有负权回路。
它也有明显的缺点它的时间复杂度
(N是点数E是边数)普遍是要高于Dijkstra算法O(N²)的。
像这里如果我们使用邻接矩阵实现那么遍历所有边的数量的时间复杂度就是O(N^3)这里也可以看出来Bellman-Ford就是一种暴力求解更新。
顶点的下标映射关系std::vectorstd::vectorW
srci){path.push_back(parenti);parenti
pPath[parenti];}path.push_back(srci);reverse(path.begin(),
dist,记录srci-其他顶点最短路径权值数组dist.resize(n,
记录srci-其他顶点最短路径父顶点数组pPath.resize(n,
如果这个轮次中没有更新出更短路径那么后续轮次就不需要再走了if
parentPath))g.PrintShortPath(s,
Floyd-Warshall算法是解决任意两点间的最短路径的一种算法。
Floyd算法考虑的是一条最短路径的中间节点即简单路径p{v1,v2,…,vn}上除v1和vn的任意节点。
设k是p的一个中间节点那么从i到j的最短路径p就被分成i到k和k到j的两段最短路径p1p2。
p1是从i到k且中间节点属于{12…k-1}取得的一条最短路径。
p2是从k到j且中间节点属于{12…k-1}取得的一条最短路径。
即Floyd算法本质是三维动态规划D[i][j][k]表示从点i到点j只经过0到k个点最短路径然后建立起转移方程然后通过空间优化优化掉最后一维度变成一个最短路径的迭代算法最后即得到所以点的最短路。
顶点的下标映射关系std::vectorstd::vectorW
srci){path.push_back(parenti);parenti
pPath[parenti];}path.push_back(srci);reverse(path.begin(),
FloydWarshall(std::vectorstd::vectorW
_vertexs.size();vvDist.resize(n);vvpPath.resize(n);//
没有直接相连k-...-x-jvvpPath[k][j]存就是xvvpPath[i][j]
vvDist;std::vectorstd::vectorint
vvParentPath;g.FloydWarshall(vvDist,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback