43. Algorithme de Dijkstra : Étapes d'Implémentation Détaillées
Formalisons les étapes pour Dijkstra's :
- Initialisation : Créer un tableau de distance
dist(tous définis à l'infini, source définie à 0) et un ensemblevisited(vide). - Configuration de la File de Priorité : Insérer le nœud source (distance 0) dans un Min Heap.
- Itération : Tant que le Min Heap n'est pas vide :
a. Extraire le nœud
Uavec la distance minimale (l'étape gloutonne). b. SiUa déjà été traité (dans l'ensemblevisited), continuer. c. MarquerUcomme visité. d. Relaxation : Pour chaque voisinVdeU: * Calculer la nouvelle distance provisoire :new_dist = dist[U] + weight(U, V). * Sinew_dist < dist[V], mettre à jourdist[V]ànew_distet insérer/mettre à jourVdans la file de priorité.
- Complexité : Avec un tas de Fibonacci, O(E + V log V). Avec un Binary Heap standard (plus courant), O((V + E) log V).