最短路径的弗洛伊德算法
实现计算有向图没有负权回路的的任何点对的最短路径程序输入的有向图示#include iostream #include vector #include queue #include unordered_set #include climits #include unordered_map using namespace std; void shortestpath_FLOYD(int n, long long (a)[4][4], int(path)[4][4], int(Edge)[4][4]) { for (int i 0; i n; i) //初始化数组a 和path for (int j 0; j n; j) { a[i][j] Edge[i][j]; if (i ! j a[i][j] std::numeric_limitsfloat::max()) path[i][j] i; //vi 与vj 之间有弧 else path[i][j] 99999; } for (int k 0; k n; k) //计算每一对顶点之间的A( k )值 for (int i 0; i n; i) for (int j 0; j n; j) if (a[i][k] a[k][j] a[i][j]) { a[i][j] a[i][k] a[k][j]; path[i][j] path[k][j]; } } void printshortestPath_printlength(long long acopy[][4], int pathcopy[][4],int source , int target) { std::cout The shortest path from source to target is: std::endl; std::cout (acopy[source][target]) std::endl; if (acopy[source][target] INT_MAX) { std::cout INT_MAX stands for the fact that source can not reach target ! std::endl; } else { std::cout The path is : std::endl; std::cout target --; while (pathcopy[source][target] ! source) { std::cout pathcopy[source][target] --; target pathcopy[source][target]; } std::cout pathcopy[source][target] endl; } std::cout End std::endl; } int main() { int source; int target; int n 4; int Edge[4][4] { {0,1,INT_MAX,4}, {INT_MAX,0,9,2}, {3,5,0,8}, {INT_MAX, INT_MAX,INT_MAX,0}, // 实验 3--2 没有 链路 }; int path[4][4] { -1 }; long long a[4][4] { 0 }; std::cout sizeof(long long) endl; std::cout Enter the source: std::endl; cin source; std::cout Enter the target: std::endl; cin target; shortestpath_FLOYD(n,a,path,Edge); std::cout The ultimate matrix a is : std::endl; for (int i0 ; i4 ; i ) for (int j 0; j 4; j) { std::cout a[i][j] ; if (j 3) { std::cout endl; } } std::cout The ultimate path matrix is : std::endl; for (int i 0; i 4; i) for (int j 0; j 4; j) { std::cout path[i][j] ; if (j 3) { std::cout endl; } } printshortestPath_printlength(a, path, source, target); }结果说明最终的最短距离矩阵中 如果值为INT_MAX 2147483647 表示 点对之间无路径可通最终输出的路径矩阵 path表示点对 path[i][j] 中回溯的上一个节点点对自己的回溯无实际意义用path[i][i] 99999特殊标识 表示

相关新闻

099、多摄融合与变焦系统:广角到长焦的无缝切换算法

099、多摄融合与变焦系统:广角到长焦的无缝切换算法

099、多摄融合与变焦系统:广角到长焦的无缝切换算法 一个让我失眠三天的Bug 2019年某旗舰机项目,DVT阶段。客户在发布会前一天反馈:从广角切到长焦时,画面会“抖”一下,像被人推了一把。我盯着log看了三天,发现不是防抖的问题——是融合算法在切换瞬间把两路sensor的视差…

2026/7/22 17:07:00 阅读更多 →
3个关键问题与解决方案:Pony V7如何让AI角色生成效率提升40%

3个关键问题与解决方案:Pony V7如何让AI角色生成效率提升40%

3个关键问题与解决方案:Pony V7如何让AI角色生成效率提升40% 【免费下载链接】pony-v7-base 项目地址: https://ai.gitcode.com/hf_mirrors/purplesmartai/pony-v7-base 当我们面对AI角色生成时,常常会遇到三个核心问题:复杂的空间关…

2026/7/22 17:07:00 阅读更多 →
Java虚拟机:栈帧中的局部变量表

Java虚拟机:栈帧中的局部变量表

写在前面在 Java 开发中,我们都曾遇到过 StackOverflowError,但你是否思考过:为什么同样的递归深度,在不同的方法上表现完全不同? 为什么一个方法能递归 1098 次,而另一个只能递归 303 次?今天&…

2026/7/22 17:07:00 阅读更多 →

最新新闻

TI M3 USB控制器核心寄存器深度解析:地址、中断与电源管理

TI M3 USB控制器核心寄存器深度解析:地址、中断与电源管理

1. 项目概述与核心价值在嵌入式系统开发,尤其是涉及USB外设或主机功能的设计中,深入理解USB控制器的寄存器是绕不开的一环。很多开发者习惯于依赖高级库函数或驱动框架,这固然能快速上手,但一旦遇到通信异常、功耗异常或需要深度定…

2026/7/22 17:53:17 阅读更多 →
解决Substance Painter到Unity材质渲染差异:PBR工作流与色彩空间实战指南

解决Substance Painter到Unity材质渲染差异:PBR工作流与色彩空间实战指南

1. 项目概述:从“图不对版”到“所见即所得”的漫漫长路如果你是一名技术美术(TA)或者负责美术资源落地的程序,那么“在Substance Painter(SP)里调得漂漂亮亮,导入Unity后却颜色发灰、质感全无”…

2026/7/22 17:53:17 阅读更多 →
GASDocumentation深度解析:从架构演进到实战方案的设计思考

GASDocumentation深度解析:从架构演进到实战方案的设计思考

GASDocumentation深度解析:从架构演进到实战方案的设计思考 【免费下载链接】GASDocumentation My understanding of Unreal Engine 5s GameplayAbilitySystem plugin with a simple multiplayer sample project. 项目地址: https://gitcode.com/GitHub_Trending/…

2026/7/22 17:53:17 阅读更多 →
Groestlcoin Core未来路线图:2026-2027技术发展与生态扩展

Groestlcoin Core未来路线图:2026-2027技术发展与生态扩展

Groestlcoin Core未来路线图:2026-2027技术发展与生态扩展 【免费下载链接】groestlcoin Groestlcoin Core integration/staging tree 项目地址: https://gitcode.com/gh_mirrors/gr/groestlcoin Groestlcoin Core作为Groestlcoin区块链的核心客户端&#xf…

2026/7/22 17:53:17 阅读更多 →
实战贝叶斯分析:从零到精通Python概率编程完整指南

实战贝叶斯分析:从零到精通Python概率编程完整指南

实战贝叶斯分析:从零到精通Python概率编程完整指南 【免费下载链接】BAP Bayesian Analysis with Python (Second Edition) 项目地址: https://gitcode.com/gh_mirrors/bap3/BAP 在数据科学和机器学习领域,贝叶斯分析正成为解决不确定性问题的核心…

2026/7/22 17:53:17 阅读更多 →
初学者 Agent 开发避坑:低代码平台选型与常见问题解决方案及企业级落地实操指南

初学者 Agent 开发避坑:低代码平台选型与常见问题解决方案及企业级落地实操指南

在 2026 年的 AI 浪潮中,AI Agent(智能体)已成为企业实现业务自动化的核心引擎。然而,对于初学者而言,从搭建一个简单的“聊天机器人”原型到构建能够处理复杂业务流的“生产级系统”,中间存在着巨大的工程…

2026/7/22 17:52:17 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻