Skip to content
Snippets Groups Projects
Verified Commit ab012699 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

changed order

parent 21448c4c
Branches master
No related tags found
No related merge requests found
Pipeline #33268 failed
......@@ -274,75 +274,6 @@ matrice, matrice floyd_warshall(distance, n, w)
:::
# Algorithme de Prim
## Structures de données
* Dans quoi allons nous stocker les sommets?
. . .
* File de priorité min.
* Autre chose?
. . .
* Tableau des distances (comme pour Dijkstra).
* Autre chose?
. . .
* Tableau des parents (presque comme pour Dijkstra).
* Autre chose?
. . .
* Non.
# Algorithme de Prim
## Initialisation: Pseudo-code (2min)
. . .
```C
file_priorité, distance, parent initialisation(graphe)
s_initial = aléatoire(graphe)
distance[s_initial] = 0
parent[s_initial] = indéfini
fp = file_p_vide()
pour s_courant dans sommets(graphe)
si s_courant != s_initial
distance[s_courant] = infini
parent[s_courant] = indéfini
fp = enfiler(fp, s_courant, distance[s_courant])
retourne fp, distance, parent
```
# Algorithme de Prim
\footnotesize
## Algorithme: Pseudo-code (5min)
. . .
```C
sommets, parent prim(file_priorité, distance, parent)
sommets = vide
tant que !est_vide(fp)
s_courant, fp = défiler(fp)
sommets = insérer(sommets, s_courant)
pour s_voinsin dans voisinage(s_courant) et pas dans sommets
// ou dans fp
si poids(s_courant, s_voinsin) < distance[s_voinsin]
parent[s_voinsin] = s_courant
distance[s_voinsin] = poids(s_courant, s_voinsin)
fp = changer_priorité(fp,
s_voinsin, poids(s_courant, s_voinsin))
retourne sommets, parent
```
# Exemple d'algorithme de Prim
::: columns
......@@ -553,6 +484,75 @@ P | - | e | e | d | d |
:::
# Algorithme de Prim
## Structures de données
* Dans quoi allons nous stocker les sommets?
. . .
* File de priorité min.
* Autre chose?
. . .
* Tableau des distances (comme pour Dijkstra).
* Autre chose?
. . .
* Tableau des parents (presque comme pour Dijkstra).
* Autre chose?
. . .
* Non.
# Algorithme de Prim
## Initialisation: Pseudo-code (2min)
. . .
```C
file_priorité, distance, parent initialisation(graphe)
s_initial = aléatoire(graphe)
distance[s_initial] = 0
parent[s_initial] = indéfini
fp = file_p_vide()
pour s_courant dans sommets(graphe)
si s_courant != s_initial
distance[s_courant] = infini
parent[s_courant] = indéfini
fp = enfiler(fp, s_courant, distance[s_courant])
retourne fp, distance, parent
```
# Algorithme de Prim
\footnotesize
## Algorithme: Pseudo-code (5min)
. . .
```C
sommets, parent prim(file_priorité, distance, parent)
sommets = vide
tant que !est_vide(fp)
s_courant, fp = défiler(fp)
sommets = insérer(sommets, s_courant)
pour s_voinsin dans voisinage(s_courant) et pas dans sommets
// ou dans fp
si poids(s_courant, s_voinsin) < distance[s_voinsin]
parent[s_voinsin] = s_courant
distance[s_voinsin] = poids(s_courant, s_voinsin)
fp = changer_priorité(fp,
s_voinsin, poids(s_courant, s_voinsin))
retourne sommets, parent
```
# Exercice: algorithme de Prim
## Appliquer l'algorithme de Prim à (15min):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment