file de priorité

Post on 21-Jun-2022

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

File de priorité

Référence : Cormen

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

File (FIFO : first in, first out)

défiler

enfiler

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

défiler max

enfiler

10

7

2

5

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 !

Objectif du cours : tri par tas

construireTas

10

7

2

Tout défiler

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)

*

*

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)

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 !

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)

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

On fait ça (tas)

Implémentation étudiée ici : le tas

max

Implémentation du tas avec un tableau

i 2i 2i+11

Enfiler (ajouter)

max

v

max

v

Enfiler (ajouter)

max

v

max

v

Défiler (supprimer)

max

v

v

Défiler (supprimer)

v

v

max'

tasser

Tasser

v

max'

v' v''

Tri par tas

construireTas

10

7

2

Tout défiler

Tri par tas. Étape 1 : construire un tas

max

construireTas

Tri par tas. Étape 1 : construire un tas

m' m''

m''''m'''

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

max'' defiler

maxmax'max''

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

max'''

maxmax'max''max'''

top related