最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)Floyd算法

 更新時(shí)間:2018年01月03日 14:17:42   作者:豎支  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)Floyd算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Floyd算法:用于多源最短路徑的求解,算出來(lái)的是所有的節(jié)點(diǎn)到其余各節(jié)點(diǎn)之間的最短距離。

該算法的思路是:首先初始化距離矩陣,然后從第一個(gè)點(diǎn)開(kāi)始逐漸更新矩陣點(diǎn)值。d[i][j]表示從i點(diǎn)到j(luò)點(diǎn)的距離。第k次更新時(shí),判斷d[i][k]+d[k][j]與d[i][j]的大小,如果前者小,則更新這個(gè)值,否則不變。

給一個(gè)例子:

具體的floyd實(shí)現(xiàn)算法如下[java] view plain copy

package com.blyang; 
 
public class Floyd { 
   
  int[][] Matrix; 
  char[] Nodes; 
   
  private final int INF = Integer.MAX_VALUE; 
   
  public Floyd(char[] Nodes, int[][] Matrix){ 
    this.Nodes = Nodes; 
    this.Matrix = Matrix; 
  } 
   
  public void floyd(){ 
     
    int[][] distance = new int[Nodes.length][Nodes.length]; 
     
    // 初始化距離矩陣 
    for(int i=0; i<Nodes.length; i++){ 
      for(int j=0; j<Nodes.length; j++){ 
        distance[i][j] = Matrix[i][j]; 
      } 
    } 
     
    //循環(huán)更新矩陣的值 
    for(int k=0; k<Nodes.length; k++){ 
      for(int i=0; i<Nodes.length; i++){ 
        for(int j=0; j<Nodes.length; j++){ 
          int temp = (distance[i][k] == INF || distance[k][j] == INF) ? INF : distance[i][k] + distance[k][j]; 
          if(distance[i][j] > temp){ 
            distance[i][j] = temp; 
          } 
        } 
      } 
    } 
     
    // 打印floyd最短路徑的結(jié)果 
    System.out.printf("floyd: \n"); 
    for (int i = 0; i < Nodes.length; i++) { 
      for (int j = 0; j < Nodes.length; j++) 
        System.out.printf("%12d ", distance[i][j]); 
      System.out.printf("\n"); 
    } 
  } 
} 

在實(shí)現(xiàn)之后,針對(duì)上圖的點(diǎn)和權(quán)值,給定一個(gè)測(cè)試:

package com.blyang; 
 
public class Main { 
 
 
   
  public static void main(String[] args) { 
    int INF = Integer.MAX_VALUE; 
     
    char[] Nodes = {'0', '1', '2', '3'}; 
    int matrix[][] = { 
         /*A*//*B*//*C*//*D*/ 
     /*A*/ {  0,  1,  2,  1}, 
     /*B*/ { INF,  0, INF, INF}, 
     /*C*/ { INF,  3,  0,  1}, 
     /*D*/ { INF,  1,  1,  0}, 
     }; 
       
    int[] dist = new int[Nodes.length]; 
   
    Floyd floyd = new Floyd(Nodes, matrix); 
    floyd.floyd(); 
 
  } 
   
} 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis plus怎么忽略映射字段

    mybatis plus怎么忽略映射字段

    這篇文章主要介紹了mybatis plus怎么忽略映射字段,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • java加密枝術(shù)深入理解

    java加密枝術(shù)深入理解

    java.security包中的MessageDigest類(lèi)提供了計(jì)算消息摘要的方法,本文將詳細(xì)介紹,需要了解的朋友可以參考下
    2012-11-11
  • Java,C#使用二進(jìn)制序列化、反序列化操作數(shù)據(jù)

    Java,C#使用二進(jìn)制序列化、反序列化操作數(shù)據(jù)

    這篇文章主要介紹了Java,C#使用二進(jìn)制序列化、反序列化操作數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2014-10-10
  • java常用工具類(lèi) XML工具類(lèi)、數(shù)據(jù)驗(yàn)證工具類(lèi)

    java常用工具類(lèi) XML工具類(lèi)、數(shù)據(jù)驗(yàn)證工具類(lèi)

    這篇文章主要為大家詳細(xì)介紹了java常用工具類(lèi),包括XML工具類(lèi)、數(shù)據(jù)驗(yàn)證工具類(lèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Java 在PDF中添加騎縫章示例解析

    Java 在PDF中添加騎縫章示例解析

    這篇文章主要介紹了Java 在PDF中添加騎縫章示例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java練習(xí)題之實(shí)現(xiàn)平方根(sqrt)函數(shù)

    Java練習(xí)題之實(shí)現(xiàn)平方根(sqrt)函數(shù)

    這篇文章主要介紹了Java練習(xí)題之實(shí)現(xiàn)平方根(sqrt)函數(shù)的相關(guān)資料,平方根是一個(gè)數(shù)學(xué)概念,表示一個(gè)數(shù)的正平方根,文中通過(guò)代碼和圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Java實(shí)現(xiàn)月餅的制作、下單和售賣(mài)功能

    Java實(shí)現(xiàn)月餅的制作、下單和售賣(mài)功能

    這篇文章主要介紹了Java實(shí)現(xiàn)月餅的制作、下單和售賣(mài),借此機(jī)會(huì),我們用Lambda實(shí)現(xiàn)一遍月餅制作,下單,售賣(mài)的開(kāi)發(fā)設(shè)計(jì)模式,主要有制作月餅的工廠(chǎng)模式,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Eclipse中如何顯示explorer過(guò)程解析

    Eclipse中如何顯示explorer過(guò)程解析

    這篇文章主要介紹了Eclipse中如何顯示explorer過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Spring中的@EnableWebSecurity注解詳解

    Spring中的@EnableWebSecurity注解詳解

    這篇文章主要介紹了Spring中的@EnableWebSecurity注解詳解,EnableWebSecurity注解是個(gè)組合注解,它的注解中,又使用了@EnableGlobalAuthentication注解,需要的朋友可以參考下
    2023-12-12
  • Java?IO網(wǎng)絡(luò)模型實(shí)現(xiàn)解析

    Java?IO網(wǎng)絡(luò)模型實(shí)現(xiàn)解析

    這篇文章主要為大家介紹了Java?IO網(wǎng)絡(luò)模型實(shí)現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論

松桃| 大庆市| 茌平县| 石狮市| 大竹县| 华阴市| 贡觉县| 胶州市| 射洪县| 桂东县| 龙陵县| 沧州市| 伊春市| 襄垣县| 西乌| 乐至县| 阳朔县| 乐陵市| 内乡县| 黑水县| 讷河市| 山丹县| 永靖县| 永仁县| 常山县| 开原市| 白玉县| 古蔺县| 防城港市| 环江| 通山县| 金昌市| 松原市| 平果县| 南投市| 博爱县| 长子县| 南岸区| 叶城县| 阿拉善右旗| 佛冈县|