Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa Última revisión Ambos lados, revisión siguiente | ||
algoritmos-oia:grafos:floyd-warshall [2017/12/06 13:42] sebach creado |
algoritmos-oia:grafos:floyd-warshall [2017/12/26 19:12] sebach ↷ Page moved from algoritmos-oia:floyd-warshall to algoritmos-oia:grafos:floyd-warshall |
||
---|---|---|---|
Línea 17: | Línea 17: | ||
Va el código: | Va el código: | ||
- | <code cpp> | + | <code cpp floyd.cpp> |
- | #define forn(i,n) for(int i=0;i<(int)(n); i++) | + | #define forn(i,n) for(int i=0;i<int(n); i++) |
struct arista{ | struct arista{ | ||
Línea 25: | Línea 25: | ||
}; | }; | ||
- | vector< vector<int> > floydWarshall(vector<arista> grafo, int V){ | + | vector< vector<int> > floydWarshall(vector<arista>& grafo, int V){ |
- | int INF = 2e9; | + | const int INF = 2e9; |
vector< vector<int> > distancia(V, vector<int>(V, INF)); | vector< vector<int> > distancia(V, vector<int>(V, INF)); | ||
forn(i, grafo.size()){ | forn(i, grafo.size()){ | ||
Línea 38: | Línea 38: | ||
forn(j, V){ | forn(j, V){ | ||
distancia[i][j] = min(distancia[i][j], distancia[i][k] + distancia[k][j]); | distancia[i][j] = min(distancia[i][j], distancia[i][k] + distancia[k][j]); | ||
- | // Si el grafo no es dirigido, hago: | ||
- | // distancia[j][i]=distancia[i][j]; | ||
} | } | ||
} | } |