当前位置:   article > 正文

java 点到点最短路径_【算法】求无向图中指定点到点之前最短路径

java 点到点最短路径_【算法】求无向图中指定点到点之前最短路径

求无向图中任意两点之间最短距离

aaf6610990ed67762a3626322978fe0d.png

在本例中,假设求1->2之间的最短距离,很容易得到f(2) = min{f(3)+1,f(5)+1}

f(d) = min(f(0)>0->f(0)+1...f(d-1)>0->f(d-1)+1)

JAVA编码实现public static void main(String[] args) {

int[][] maps = {

{0, 0, 0, 0, 0, 0},

{0, 0, 0, 1, 1, 0},

{0, 0, 0, 1, 0, 1},

{0, 1, 1, 0, 0, 1},

{0, 1, 0, 0, 0, 1},

{0, 0, 1, 1, 1, 0}

};

int shortDistance = shortDistance(maps, 1, 2);

System.out.println("最短路径:" + shortDistance);

}

public static int shortDistance(int[][] maps, int x, int y) {

int min = maps[x][y];

if (min == 0) {

for (int i = 1; i < maps[y].length; i++) {

if (maps[x][i] == 1) {

int tmp = shortDistance(maps, x, i);

if (tmp + 1 < min || min == 0) {

min = tmp + 1;

}

}

}

}

return min;

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/152030
推荐阅读
相关标签
  

闽ICP备14008679号