Pessoal, alguém pode me ajudar a implementar esse algoritmo?
Eu não consigo obter a matriz porque não sei como escrever o valor infinito utilizando a variável int. Meu código é o seguinte:
public static void main(String[] args) {
int[][] Madj = new int[18][18];
Madj[0][3] = 3;
Madj[0][5] = 11;
Madj[0][14] = 25;
Madj[0][15] = 5;
Madj[1][2] = 2;
Madj[1][4] = 16;
Madj[1][9] = 34;
Madj[1][12] = 12;
Madj[2][4] = 2;
Madj[2][5] = 5;
Madj[2][7] = 19;
Madj[2][10] = 6;
Madj[2][14] = 34;
Madj[3][1] = 4;
Madj[3][6] = 34;
Madj[3][10] = 5;
Madj[3][17] = 1;
Madj[4][0] = 12;
Madj[4][3] = 3;
Madj[4][8] = 16;
Madj[4][16] = 11;
Madj[5][3] = 22;
Madj[5][11] = 8;
Madj[5][17] = 11;
Madj[6][12] = 5;
Madj[6][15] = 17;
Madj[7][2] = 21;
Madj[7][4] = 33;
Madj[7][13] = 48;
Madj[8][0] = 23;
Madj[8][3] = 4;
Madj[8][5] = 7;
Madj[8][7] = 21;
Madj[8][9] = 15;
Madj[8][10] = 12;
Madj[8][16] = 3;
Madj[9][5] = 1;
Madj[9][8] = 17;
Madj[9][11] = 9;
Madj[9][14] = 18;
Madj[9][15] = 19;
Madj[10][1] = 23;
Madj[10][5] = 3;
Madj[10][6] = 7;
Madj[10][13] = 3;
Madj[11][2] = 33;
Madj[11][3] = 2;
Madj[11][5] = 4;
Madj[11][8] = 6;
Madj[11][10] = 18;
Madj[11][12] = 8;
Madj[11][14] = 9;
Madj[11][17] = 8;
Madj[12][4] = 2;
Madj[12][9] = 15;
Madj[12][16] = 13;
Madj[12][17] = 7;
Madj[13][2] = 6;
Madj[13][7] = 6;
Madj[13][10] = 23;
Madj[14][3] = 11;
Madj[14][7] = 16;
Madj[14][8] = 2;
Madj[14][10] = 8;
Madj[14][11] = 19;
Madj[14][15] = 7;
Madj[15][0] = 6;
Madj[15][2] = 18;
Madj[15][4] = 30;
Madj[15][6] = 5;
Madj[15][8] = 3;
Madj[15][13] = 12;
Madj[15][17] = 2;
Madj[16][4] = 20;
Madj[16][7] = 44;
Madj[16][9] = 12;
Madj[16][11] = 6;
Madj[16][12] = 7;
Madj[17][0] = 0;
Madj[17][8] = 5;
Madj[17][14] = 9;
Madj[17][16] = 21;
Ver(Madj, 18);
}
public static void Ver(int[][] Cmin, int t) {
System.out.printf("\n\nMatriz (de i para j): \n");
String linha = "\t";
int[][] Madj = new int[18][18];
int n = 0, k = 0, num = 1;
Object[] isso = null;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (i == j) {
Madj[i][j] = 0; /* A distância para o próprio
ponto de repouso é zero */
} else {
Madj[i][j] = integer.Posite_Infinity; /* Diz que a distância entre os pontos
é ?infinita?*/
}
for (k = 1; k <= n; k++) {
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
if ((Madj[i][k] + Madj[k][j]) < Madj[i][j]) {
Madj[i][j] = Madj[i][k] + Madj[k][j];
Madj[j][i] = Madj[i][k] + Madj[k][j];
}
}
}
}
Se alguém puder me ajudar, agradeço 