Java實(shí)現(xiàn)Floyd算法求最短路徑
本文實(shí)例為大家分享了Java實(shí)現(xiàn)Floyd算法求最短路徑的具體代碼,供大家參考,具體內(nèi)容如下
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;
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解在spring中使用JdbcTemplate操作數(shù)據(jù)庫(kù)的幾種方式
這篇文章主要介紹了詳解在spring中使用JdbcTemplate操作數(shù)據(jù)庫(kù)的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
spring boot項(xiàng)目中MongoDB的使用方法
前段時(shí)間分享了關(guān)于Spring Boot中使用Redis的文章,除了Redis之后,我們?cè)诨ヂ?lián)網(wǎng)產(chǎn)品中還經(jīng)常會(huì)用到另外一款著名的NoSQL數(shù)據(jù)庫(kù)MongoDB。下面這篇文章主要給大家介紹了關(guān)于在spring boot項(xiàng)目中MongoDB的使用方法,需要的朋友可以參考下。2017-09-09
Spring兩種任務(wù)調(diào)度Scheduled和Async的區(qū)別和應(yīng)用場(chǎng)景詳解
在現(xiàn)代應(yīng)用程序中,任務(wù)調(diào)度是一個(gè)非常普遍的需求,Spring框架提供了兩種主要的方式來實(shí)現(xiàn)任務(wù)調(diào)度:??Scheduled?? 和 ??Async??,在這篇文章中,我們將詳細(xì)介紹這兩種方式的區(qū)別和應(yīng)用場(chǎng)景,需要的朋友可以參考下2024-12-12
解決MyBatis-Plus使用動(dòng)態(tài)表名selectPage不生效的問題
這篇文章主要介紹了如惡化解決MyBatis-Plus使用動(dòng)態(tài)表名selectPage不生效的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
不規(guī)范使用ThreadLocal導(dǎo)致bug分析解決
這篇文章主要為大家介紹了不規(guī)范使用ThreadLocal導(dǎo)致bug分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01

