elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Algoritmos para grafos (C)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Algoritmos para grafos (C)  (Leído 11,277 veces)
Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Algoritmos para grafos (C)
« Respuesta #10 en: 6 Julio 2011, 22:15 pm »

Eso es falso, el orden de complejidad de Dijkstra es mayor que el de BFS y a la práctica también es más lento

El algoritmo de Dijkstra es un algoritmo voraz (avance rápido) y tiene un orden de complejidad de O(n2), incluso se puede conseguir un O(a·log n) siendo a el número de aristas haciendo una implementación distinta a la que se suele usar. Y los algoritmos de BFS (al menos, los que yo he visto) tienen un orden de O(n2) con matrices de adyacencia, y O(a+n) con listas de adyacencia. Así que tampoco se diferencian tanto los tiempos de ejecución cuando tienes un grafo completo.


En línea

ghastlyX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.900



Ver Perfil
Re: Algoritmos para grafos (C)
« Respuesta #11 en: 6 Julio 2011, 22:29 pm »

Siguiendo tu notación, efectivamente Dijkstra tiene complejidad cuadrática sobre los nodos en su implementación directa. Si lo implementas con colas de prioridad con coste logarítmico, bajas la complejidad a O((n + a)logn), que es la complejidad de BFS con un factor logarítmico extra (programándolo bien, obviamente).

Si el grafo es completo, i.e. a = n2, uno quedará O(n2logn) y otro O(n2), que evidentemente es mejor.

Esto hablando de las versiones estándar de cada uno. Si se quiere rizar el rizo y hablar de la versión de Dijkstra con Fibonacci Heaps, que rara vez se usa a la práctica, entonces se acaba teniendo una complejidad teórica (no hablemos ya de las constantes debidas a implementación) de O(a + nlogn), que sigue siendo peor que un BFS.


En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
alguna dirección para bajar ejercicios de algoritmos con diagramas de flujo????
Ejercicios
alvaro4356 1 13,190 Último mensaje 10 Enero 2007, 14:31 pm
por carlospes
Algoritmos para cubo de pintura
Ejercicios
juancho77 1 4,933 Último mensaje 3 Diciembre 2008, 19:32 pm
por ghastlyX
Grafos
Java
soser 1 3,236 Último mensaje 4 Noviembre 2010, 22:53 pm
por Debci
Aplicación en Ubuntu para cifrar con AES o algoritmos + fuertes
Criptografía
Gambinoh 4 7,304 Último mensaje 26 Enero 2011, 20:46 pm
por DaNuK-men
grafos
Programación General
kailon 3 3,825 Último mensaje 6 Junio 2011, 16:54 pm
por Valkyr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines