Java实现佛洛依德算法(floyd)的完整代码
Java实现佛洛依德算法(floyd)的完整代码
/*** 弗洛伊德(floyd)算法求图中所有点对之间的最短路径;* 其中‘-1’表示两点之间目前还没有联通的路径;* 结论:如果A点到G点之间有最短路径,那么被这条最短路径所包含的所有点之间的最短路径一定是这条最短路径的子集(或子路段)。*/public int[][] floyd(int[][] initialGraph){int[][] resultGrapg=initialGraph.clone();// for(int[] i : resultGrapg) {// for(int j : i) System.out.print(" "+j+",");
// System.out.println();
// }// 加的点要写在最外层,因为写在内层的话,所加的点在i,j(如:1,2)两点间的路径是不能叠加的,而在最外层才能叠加增加的点// 因为k是在最外层的,所以会把所有的i到j都处理完后,才会移动到下一个k,// 每加一个中间点,即计算出加该点后,所有因为加该点而变短的 “所有路径”。for(int k=0; k<resultGrapg[0].length; k++) { for(int i=0; i<resultGrapg[0].length; i++) {for(int j=0; j<resultGrapg[0].length; j++) {if(resultGrapg[i][j]>resultGrapg[i][k]+resultGrapg[k][j]) {resultGrapg[i][j]=resultGrapg[i][k]+resultGrapg[k][j];}}}}// System.out.println("\r==================\r");
// for(int[] i : resultGrapg) {// for(int j : i) System.out.print(" "+j+",");
// System.out.println();
// }return resultGrapg;}
Java实现佛洛依德算法(floyd)的完整代码相关推荐
- 最短路径算法之迪杰斯特拉算法(Dijkstra)和佛洛依德算法(Floyd)
今天学习了这两种算法,都是用来求最小路径的算法,但是迪杰斯特拉算法只能从某个特定点到所有点的最短路径,而佛洛依德算法可以查出任意点到任意点的最小路径. 迪杰斯特拉: package dijkstra; ...
- java实现佛洛依德算法
所用到的测试图: package algorithm;/*** 弗洛伊德算法思想:* Ak(i,j)意思是i点到j点经过一系列点,但是点下标最多不超过k* 情况1:如果Ak(i,j)不经过k,那么Ak ...
- 十大常用算法之佛洛依德算法
十大常用算法的完整实现 一.二分查找算法:https://blog.csdn.net/weixin_46635575/article/details/121532149 二.分治算法:https:// ...
- 佛洛依德算法C语言简单实现
计算图中每个顶点间的最短路径及路径长度 采用邻接矩阵表示图 代码如下: #include <stdio.h> #include <windows.h> #include < ...
- 推免复习之数据结构与算法 佛洛依德算法
佛洛依德算法算法作为一个经典的求最短路径的算法,思路其实很简单,就是不停地进行"松弛操作",直到全部遍历一遍.那么什么是松弛操作呢?比如说我们的图存在一个邻接矩阵graph中,gr ...
- 佛洛依德算法求最短路径(记录路径信息)
佛洛依德算法: 利用D矩阵拿到邻接矩阵中的权值.path矩阵记录两点之间的移动中转点(初始值为起点). 对于邻接矩阵中 i 到 j 点的权值进行比较,若加上一个中转点 k 后的权值小于原本的权值,则对 ...
- 佛洛依德算法求最短路径实例
佛洛依德算法求最短路径实例 #include <iostream> #include <string.h> #include <stdlib.h> #include ...
- 迪杰斯特拉算法与佛洛依德算法
迪杰斯特拉算法用于计算:某点v0到其他所有点的最短路径,时间复杂度为O(n^2) 初态: 设定V为所有顶点的集合. 设定S为已经得到的最短路径的顶点vi的集合.即S中的顶点vi,都是已经确定下来v0到 ...
- 佛洛依德算法的学习与实现
1.问题引入 带权有向图中单源点的最短路径问题可以用地杰斯特拉算法求解,如果要求解图中每一对顶点之间的最短路径,类似可以想到的方法为:每次以一个顶点为源点,重复执行地杰斯特拉算法算法n次,这样,便可以 ...
最新文章
- 优化IIS7.5支持10万个同时请求的配置方法
- NURBS曲面结构及生成原理、修改方法
- android 缩略图uri_课题_android系统通过图片绝对路径获取URI的三种方法
- 【渝粤教育】国家开放大学2018年春季 0176-22T电机学(一) 参考试题
- 用友无法打开计算机的ufnet服务,服务器安装完毕登陆正常,但是客户端安装完毕,重启以后,用友通无法正常启动,手工在服务里面启动,提示‘服务无法启动或依存的标记被删除’...
- windows程序窗体创建流程模型A--利用基本数据类型
- 美国确诊超46万!美国州长竟然抢起高龄程序员了,什么情况?
- buck电路_2步避免BUCK电路中的“地弹”
- 案例-旋转木马(CSS3)
- 图像语义分割(10)-DeepLabV3+: 用于图像语义分割的带有空洞可分离卷积的编解码结构
- int类型究竟占几个字节
- 【C语言程序】带你用17行代码编译一个C语言数字雨
- 地图标识符号大全_资源小结:分省地图查询(9.1版)
- Charles 破解版安装
- 混淆 php,开发简单的PHP混淆器与解混淆器
- 一个学习C语言的好网站,推荐给大家
- 卓训教育:家庭教育的重要性,家庭教育的理念及基本方法
- WPF实现照片墙拼图展示特效
- 我的博客 http://aofengblog.blog.163.com/
- Linux du(disk usage)命令详解
热门文章
- 字体大宝库:20款充满艺术感的高质量英文字体
- 建筑行业转型,这4点很重要!
- AD16/17创建LM358元件符号
- RISCV - 2 “Zicsr“, CSR Instructions
- 3-4章 第3章 form表单组件与小程序前后端通信
- java ssm常遇见的问题_ssm框架整合遇到的问题
- 从头写一个超过zip的压缩算法(11):最终篇:优化压缩后的文件大小(7):deflate的滑动窗口
- Math.min()和Math.max()的使用
- 练手项目之会议室预订
- 质量小议13 -- 侥幸