Java实现Floyd算法求最短路径
更新时间:2021年11月24日 10:39:45 作者:有道李
这篇文章主要为大家详细介绍了Java实现Floyd算法求最短路径,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Java实现Floyd算法求最短路径的具体代码,供大家参考,具体内容如下
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class TestMainIO { /** * @param args * @throws FileNotFoundException */ public static void main(String[] args) throws FileNotFoundException { TestMainIO test_print = new TestMainIO(); int[][] G = test_print.intputGragh("D:\\Users\\test.txt" , 6); int[][] Dis = test_print.floyd(G, 6); test_print.printG(Dis, 6); } public void printG(int[][] G,int n){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ System.out.println(i+"->"+j+" "+G[i][j]); } } } public int[][] intputGragh(String path , int num) throws FileNotFoundException{ int[][] G = new int[num][num]; for(int i=0;i<num;i++){ for(int j=0;j<num;j++){ G[i][j]=999; } } Scanner in = new Scanner(new FileInputStream(path)); while (in.hasNext()) { int i = in.nextInt(); int j = in.nextInt(); int weight = in.nextInt(); G[i][j] = weight; } return G; } public int[][] floyd(int[][] G,int n){ int[][] Dis= new int[n][n]; for(int q=0;q<n;q++){ for(int w=0;w<n;w++){ Dis[q][w]=G[q][w]; } } for(int k = 0; k < n; k++){ for(int i=0; i < n; i++ ){ for(int j=0; j < n; j++){ if(Dis[i][j]>Dis[i][k]+Dis[k][j]){ Dis[i][j]=Dis[i][k]+Dis[k][j]; } } } } return Dis; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
MyBatis学习教程(二)—如何使用MyBatis对users表执行CRUD操作
这篇文章主要介绍了MyBatis学习教程(二)—如何使用MyBatis对users表执行CRUD操作的相关资料,需要的朋友可以参考下2016-05-05SpringBoot3.0自定stater模块的操作流程(chatGPT提供的49种场景)
SpringBoot3.0发布等重磅陆消息续进入大家的视线,而本文作者将以技术整合的角度,带大家把最火的两个技术整合在一起,通过本文学习你将熟悉SpringBoot3.0自定stater模块的操作流程,并熟悉OpenAi为chatGPT提供的49种场景,感兴趣的朋友一起看看吧2022-12-12微信开发准备第二步 springmvc mybatis项目结构搭建
这篇文章主要为大家详细介绍了微信开发准备第二步,springmvc和mybatis项目结构的搭建,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-04-04
最新评论