Floyd Warshall Algorithm

 






























class matrix {

int [][]array;

matrix(int [][]m) {

this.array = m;

for(int i=0; i<array.length; i++){

doStuff(i);

}

}

void doStuff(int n) {

for (int i = 0; i < array.length; i++) {

for (int j = 0; j < array.length; j++) {

if(i == j){

continue;

}

if (pair(i, j) > pair(i, n, j)) {

update(i, n, j);

}

}

}



}

int pair(int r, int c) {

System.out.println("pair "+r+" "+c);

int x = array[r][c];

return x;

}

int pair(int r, int i, int c) {

if (i == c) {

return pair(r, c);

}

int x = pair(r, i) + pair(i, c);

return x;

}

void update(int r, int i, int c) {

array[r][c] = pair(r, i) + pair(i, c);

}

void print(){

for (int i = 0; i < array.length; i++) {

for (int j = 0; j < array.length; j++) {

System.out.print(" " + array[i][j]);

}

System.out.println();

}

}


}

class work {

public static void main(String args[]) {

int [][]ar = {{0, 8, 100, 1}, {100, 0, 1, 100}, {4, 100, 0, 100}, {100, 2, 9, 0}};

matrix obj = new matrix(ar);

obj.print();


}

}

Comments