Encuentre la distancia más corta entre dos puntos cualesquiera en la matriz de adyacencia. El procedimiento es el siguiente, ¿alguien puede explicar qué significa?
Según los requisitos de lz, el más adecuado es el algoritmo de floyd
El siguiente es el código escrito de acuerdo con este algoritmo que lz puede convertirlo en una función por sí mismo
D=[0. 1 0 1 0 0
1 0 1 0 0 0 0
0 1 1 0 1 1 1 1
1 0 1 0 1 0 1 0
0 0 1 1 1 1 1 0 1
0 0 1 0 1 0 0];
n=longitud(D);
para k=1:n
para i=1:n
para j=1:n
para j=1:n
si 0 si D(i,j)==0 & i~=j D(i,j )=D(i,k)+D(k,j); si no D(i,j)=min(D(i, j),D(i ,k)+D(k,j)); fin fin fin fin end end end La respuesta se almacena en la matriz D, donde D = 0 1 2 1 2 3 1 0 1 2 2 2 2 1 0 1 1 1 1 2 1 0 1 2 2 2 1 1 0 1 3 2 1 2 1 0 El algoritmo se basa en O(n3). 256^3=2^24 es aproximadamente igual a 16 millones La eficiencia es completamente asequible.