La complejidad se deriva de la siguiente manera. La fase de inicialización cuesta . El bucle se ejecutaveces. El bucle anidado dentro de la bucle se ejecuta veces. Finalmente, el lema del apretón de manos implica que hay implícitas DECREASE-KEY's. Por lo tanto, la complejidad es: .O(V)while|V|forwhiledegree(u)Θ(E)Θ(V)∗TEXTRACT−MIN+Θ(E)∗TDECREASE−KEY
La complejidad real depende de la estructura de datos realmente utilizada en el algoritmo. Usando una matriz, , la complejidad es en el peor de los casos.TEXTRACT−MIN=O(V),TDECREASE−KEY=O(1)O(V2)
Usando un montón binario, , la complejidad es en el peor de los casos. Aquí está la razón: dado que el gráfico está conectado, entonces , y es como máximo (peor de los casos, para un gráfico denso). Probablemente, te perdiste este punto.TEXTRACT−MIN=O(logV),TDECREASE−KEY=O(logV)O(ElogV)|E|≥|V|−1EV2
Usando un montón de Fibonacci, amortizado, amortizado, la complejidad es en el peor de los casos.TEXTRACT−MIN=O(logV)TDECREASE−KEY=O(1)O(E+VlogV)