Java实现"最短路径FLOYD算法”
2010-11-21 22:42
399 查看
/**
* title_最短路径问题 made by 任辉 2010-10-22
*/
public class Task7_15 {
private int[][] l = { { 0, 0, 0, 0, 0 }, { 0, 0, 7, 1, 6 },
{ 0, 100, 0, 9, 100 },
{ 0, 4, 4, 0, 2 },
{ 0, 1, 100, 100, 0 } };//存储各个边的长度i~j的二维数组
private int[][] D;//存储最终结果的二维数组
/** 构造 */
public Task7_15() {
System.out.println("L:中保存所要求的各个边(i,j)间的长度");
printL(l);
FLOYD();
System.out.println("D:中保存所要求的各个顶点(i,j)间的最短路径");
printL(D);
}
/** 算法FLOYD */
public void FLOYD() {
D = l;
for (int k = 1; k < l.length; k++)
for (int i = 1; i < l.length; i++)
for (int j = 1; j < l.length; j++)
D[i][j] = min(D[i][j], D[i][k] + D[k][j]);
}
/**二者求最小*/
public int min(int a, int b) {
if (a >= b)
return b;
else
return a;
}
/**打印表*/
public void printL(int [][]a) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.printf("%4d", l[i][j]);
}
System.out.println("");
}
}
/** mainBase */
public static void main(String[] args) {
new Task7_15();
}
}
* title_最短路径问题 made by 任辉 2010-10-22
*/
public class Task7_15 {
private int[][] l = { { 0, 0, 0, 0, 0 }, { 0, 0, 7, 1, 6 },
{ 0, 100, 0, 9, 100 },
{ 0, 4, 4, 0, 2 },
{ 0, 1, 100, 100, 0 } };//存储各个边的长度i~j的二维数组
private int[][] D;//存储最终结果的二维数组
/** 构造 */
public Task7_15() {
System.out.println("L:中保存所要求的各个边(i,j)间的长度");
printL(l);
FLOYD();
System.out.println("D:中保存所要求的各个顶点(i,j)间的最短路径");
printL(D);
}
/** 算法FLOYD */
public void FLOYD() {
D = l;
for (int k = 1; k < l.length; k++)
for (int i = 1; i < l.length; i++)
for (int j = 1; j < l.length; j++)
D[i][j] = min(D[i][j], D[i][k] + D[k][j]);
}
/**二者求最小*/
public int min(int a, int b) {
if (a >= b)
return b;
else
return a;
}
/**打印表*/
public void printL(int [][]a) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.printf("%4d", l[i][j]);
}
System.out.println("");
}
}
/** mainBase */
public static void main(String[] args) {
new Task7_15();
}
}
相关文章推荐
- 图论最短路径算法-Floyd算法-JAVA代码实现
- 多源最短路径( Floyd算法)JAVA实现
- Floyd算法求最短路径,JAVA实现
- Java实现Floyd算法求最短路径
- hihoCoder - 1089 - 最短路径·二:Floyd算法 (floyd算法!!)
- Floyd算法实现每一对顶点之间的最短路径
- java编写文件路径 File.separator 和 "\\”区别
- java获取服务器、工程路径等相关信息System.getProperty("user.dir")
- 迪杰斯特拉算法处理有向图中最短路径的(dijkstra)Java实现及升级
- java实现图的最短路径(SP)的迪杰斯特拉(Dijkstra)算法
- java实现图的最短路径(SP)的贝尔曼福特(Bellman-Ford)算法
- Dijkstra算法求单源最短路径Java实现
- leetcode: Pascal's Triangle | Java最短代码实现
- 最短路径Dijkstra算法的JAVA实现--转载
- Dijkstra最短路径算法浅析及java实现
- 最短路径-弗洛伊德算法的java实现
- POJ--1502:MPI Maelstrom (最短路径:Dijkstra算法 & Floyd算法)
- C语言实现图的最短路径Floyd算法
- 无权图的最短路径Java实现
- java实现最短路径算法之Dijkstra算法