file de priorité

24
File de priorité Référence : Cormen

Upload: others

Post on 21-Jun-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: File de priorité

File de priorité

Référence : Cormen

Page 2: File de priorité

Files de priorité

Files de priorité● Structure de données abstraite « file de

priorité »● Implémentations naïves● Implémentation avec un tas● Implémentation d'un tas avec un tableau

Tri par tas

Page 3: File de priorité

File (FIFO : first in, first out)

défiler

enfiler

Page 4: File de priorité

Structure de données abstraite « File de priorité »

défiler max

enfiler

10

7

2

5

Page 5: File de priorité

Applications

● Serveur d'impression● Gestion des atterrissages des avions● Système d'exploitation : traiter des événements

par priorité● Simulation numérique avec événements● Dans d'autres algorithmes (celui de Dijkstra par

exemple)● Et aussi le tri par tas !

Page 6: File de priorité

Objectif du cours : tri par tas

construireTas

10

7

2

Tout défiler

Page 7: File de priorité

Motivation

Pire des cas

En moyenne

En place Stable

Insertion O(n²) O(n²)

Tri fusion O(n ln n) O(n ln n)

Tri rapide O(n²) O(n ln n)

Tri Shell O(n ln² n) ?

Tri par tas O(n ln n) O(n ln n)

*

*

Page 8: File de priorité

Implémentations naïves

enfiler Défiler max

Tableau O(1) O(n)

Liste O(1) O(n)

Tableau trié O(n) O(1)

Liste triée O(n) O(1)

AVL O(ln n) O(ln n)

Page 9: File de priorité

Une autre implémentation : le tas

enfiler Défiler max

Tableau O(1) O(n)

Liste O(1) O(n)

Tableau trié O(n) O(1)

Liste triée O(n) O(n)

ABR O(ln n) O(ln n)

Tas O(ln n) O(ln n)

Aussi !! Mais en place !

Page 10: File de priorité

Idée générale

défiler max

enfiler

5

● Interface d'une file de priorité

● Implémentation➢ Tableau➢ Liste➢ Tableau triée➢ Liste triée➢ ABR➢ Tas (tableau aussi)

Page 11: File de priorité

Au lieu de faire ça (ABR)...

Page 12: File de priorité

On fait ça (tas)

Page 13: File de priorité

Implémentation étudiée ici : le tas

max

Page 14: File de priorité

Implémentation du tas avec un tableau

i 2i 2i+11

Page 15: File de priorité

Enfiler (ajouter)

max

v

max

v

Page 16: File de priorité

Enfiler (ajouter)

max

v

max

v

Page 17: File de priorité

Défiler (supprimer)

max

v

v

Page 18: File de priorité

Défiler (supprimer)

v

v

max'

tasser

Page 19: File de priorité

Tasser

v

max'

v' v''

Page 20: File de priorité

Tri par tas

construireTas

10

7

2

Tout défiler

Page 21: File de priorité

Tri par tas. Étape 1 : construire un tas

max

construireTas

Page 22: File de priorité

Tri par tas. Étape 1 : construire un tas

m' m''

m''''m'''

Page 23: File de priorité

Tri par tas. Étape 2 : défiler un à un les maximums

max'' defiler

maxmax'max''

Page 24: File de priorité

Tri par tas. Étape 2 : défiler un à un les maximums

max'''

maxmax'max''max'''