En primer lugar, debe comprender que utilizamos principalmente listas de adyacencia para algoritmos simples, pero recuerde que la matriz de adyacencia también es igualmente (o más) importante.
A estas alturas ya debe haber entendido que depende del problema en el que esté trabajando, antes de eso debe comprender los pros y los contras o la representación:
Matriz de adyacencia:
- si su problema (algoritmo) necesita consultas como cuál es el peso entre dos vértices o si hay algún borde entre estos dos vértices, con la matriz de adyacencia este tipo de consultas tienen una complejidad lineal de tiempo
- sobre todo útil en problemas de programación dinámica (Floyd Warshall),
- no es bueno, si hay bordes O (| V |) en el gráfico
Lista de adyacencia:
- Si desea iterar con vecinos de un nodo (BFS, DFS, Dijkstra), lo que le dará una complejidad lineal de tiempo
- Si quieres agregación, como recuento de vecinos
- No es útil cuando hay bordes O (| V | ^ 2) en el gráfico
- ¿Qué algoritmos puedo usar para predecir la temperatura o dichos parámetros en función de sus datos históricos?
- ¿Hay alguna aplicación práctica de algoritmos que calculen los equilibrios de Nash?
- ¿Cómo pueden uno y qué algoritmos podrían usarse para entrenar una red neuronal profunda con una cantidad limitada de datos desaprender sus representaciones mal aprendidas?
- ¿Qué son las estructuras autorreferenciales?
- ¿Puedes mejorar para resolver problemas algorítmicos que son completamente nuevos para ti?