Algoritmo di Dijkstra: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
fix wl |
ortografia |
||
(2 versioni intermedie di 2 utenti non mostrate) | |||
Riga 25:
#* Se f(i)= ∞ per ogni i in T '''STOP'''
#* Troviamo j in T tale che f(j)=min f(i) con i appartenente a T
#* Poniamo
#* Se T=Ø '''STOP'''
# ''Assegnazione etichetta provvisoria''
Riga 55:
18 '''For each''' neighbour ''v'' di ''u'':
20 ''alt'' := dist[''u''] + dist_tra(''u'', ''v'') ;
21 '''if''' ''alt'' < dist[''v'']: ''// questa condizione e' sempre false se v
22 dist[''v''] := ''alt'' ;
23 precedente[''v''] := ''u'' ;
Riga 77:
== Tempo di esecuzione ==
La [[Teoria della complessità computazionale|complessità computazionale]] dell'algoritmo di Dijkstra può essere espressa in funzione di <math>|V|</math> ed <math>|E|</math> ossia, rispettivamente, il numero di nodi e degli archi appartenenti al grafo sul quale viene eseguito. L'algoritmo utilizza una [[coda di priorità]] su cui vengono effettuate tre operazioni: la costruzione della coda, l'estrazione dell'elemento minimo e la riduzione del valore di un elemento. La [[struttura dati]] utilizzata per l'implementazione della coda di priorità determina la complessità di queste tre operazioni e, di conseguenza, quella dell'algoritmo.
In generale, la complessità, <math>T_D(G)</math>, dell'algoritmo di Dijkstra è limitata superiormente da
|