• Aucun résultat trouvé

Le tri

N/A
N/A
Protected

Academic year: 2022

Partager "Le tri"

Copied!
12
0
0

Texte intégral

(1)

Plan

1 Introduction

2 Algorithmes de tri Tri par s´election Tri par insertion Tri fusion Le tri rapide

Des tris avec des arbres. . . Tri par tas

Optimalit´e des algorithmes de tri Activit´e en classe

3 Travaux pratiques sur machines

Plan

1 Introduction

2 Algorithmes de tri Tri par s´election Tri par insertion Tri fusion Le tri rapide

Des tris avec des arbres. . . Tri par tas

Optimalit´e des algorithmes de tri Activit´e en classe

3 Travaux pratiques sur machines

Le tri

Probl`eme :´etant donn´e un tableau d’entiers T, trier T dans l’ordre croissant.

• Probl`eme connu

• Grande richesse conceptuelle :

! Des algorithmes bas´es sur des id´ees et des structures de donn´ees tr`es diff´erentes. . .

! Des complexit´es diff´erentes.

! Des algorithmes optimaux.

Plan

1 Introduction

2 Algorithmes de tri Tri par s´election Tri par insertion Tri fusion Le tri rapide

Des tris avec des arbres. . . Tri par tas

Optimalit´e des algorithmes de tri Activit´e en classe

3 Travaux pratiques sur machines

(2)

Plan

1 Introduction

2 Algorithmes de tri Tri par s´election Tri par insertion Tri fusion Le tri rapide

Des tris avec des arbres. . . Tri par tas

Optimalit´e des algorithmes de tri Activit´e en classe

3 Travaux pratiques sur machines

Le tri par s´ election

• Trouver le plus petit ´el´ement et le mettre au d´ebut de la liste

Le tri par s´ election

• Trouver le plus petit ´el´ement et le mettre au d´ebut de la liste

• Trouver le 2e plus petit et le mettre en seconde position

Le tri par s´ election

• Trouver le plus petit ´el´ement et le mettre au d´ebut de la liste

• Trouver le 2e plus petit et le mettre en seconde position

• Trouver le 3e plus petit ´el´ement et le mettre `a la 3e place,

(3)

Le tri par s´ election

• Trouver le plus petit ´el´ement et le mettre au d´ebut de la liste

• Trouver le 2e plus petit et le mettre en seconde position

• Trouver le 3e plus petit ´el´ement et le mettre `a la 3e place,

• . . .

Le tri par s´ election

Tri par s´election

Donn´ees : Un tableau de n entiers T R´esultat : Le tableau T tri´e

pour chaque i allant de 1 `a n−1 faire ind ←Indice-Min(T,i,n)

T[i]↔T[ind] retourner T

Indice-Min(T,i,n) : retourne l’indice du plus petit ´el´ement de {T[i],T[i + 1], . . . ,T[n]}.

Le tri par s´ election

Tri par s´election

Donn´ees : Un tableau de n entiers T R´esultat : Le tableauT tri´e

pour chaque i allant de 1 `a n−1 faire ind←Indice-Min(T,i,n)

T[i]↔T[ind] retourner T

Indice-Min(T,i,n) : retourne l’indice du plus petit ´el´ement de {T[i],T[i + 1], . . . ,T[n]}.

Propri´et´e : Apr`es la ie ´etape (i = 1, . . . ,n−1), les i

premi`eres cases sont occup´ees par les i plus petits entiers de T

Complexit´e du tri par s´election

Tri par s´election

Donn´ees : Un tableau de n entiers T R´esultat : Le tableau T tri´e

pour chaque i allant de 1 `a n−1 faire ind ←Indice-Min(T,i,n)

T[i]↔T[ind] retourner T

Dans le pire cas ou en moyenne, la complexit´e (ici : nombre de comparaisons) du tri par s´election est en O(n2).

(4)

Plan

1 Introduction

2 Algorithmes de tri Tri par s´election Tri par insertion Tri fusion Le tri rapide

Des tris avec des arbres. . . Tri par tas

Optimalit´e des algorithmes de tri Activit´e en classe

3 Travaux pratiques sur machines

Le tri par insertion

(le tri du joueur de cartes !)

• Ordonner les deux premiers ´el´ements

Le tri par insertion

(le tri du joueur de cartes !)

• Ordonner les deux premiers ´el´ements

• Ins´erer le 3e ´el´ement de mani`ere `a ce que les 3 premiers

´el´ements soient tri´es

Le tri par insertion

(le tri du joueur de cartes !)

• Ordonner les deux premiers ´el´ements

• Ins´erer le 3e ´el´ement de mani`ere `a ce que les 3 premiers

´el´ements soient tri´es

• Ins´erer le 4e ´el´ement `a “sa” place pour que. . .

(5)

Le tri par insertion

(le tri du joueur de cartes !)

• Ordonner les deux premiers ´el´ements

• Ins´erer le 3e ´el´ement de mani`ere `a ce que les 3 premiers

´el´ements soient tri´es

• Ins´erer le 4e ´el´ement `a “sa” place pour que. . .

• . . .

Le tri par insertion

(le tri du joueur de cartes !)

• Ordonner les deux premiers ´el´ements

• Ins´erer le 3e ´el´ement de mani`ere `a ce que les 3 premiers

´el´ements soient tri´es

• Ins´erer le 4e ´el´ement `a “sa” place pour que. . .

• . . .

• Ins´erer le ne ´el´ement `a sa place.

Le tri par insertion

(le tri du joueur de cartes !)

• Ordonner les deux premiers ´el´ements

• Ins´erer le 3e ´el´ement de mani`ere `a ce que les 3 premiers

´el´ements soient tri´es

• Ins´erer le 4e ´el´ement `a “sa” place pour que. . .

• . . .

• Ins´erer le ne ´el´ement `a sa place.

Le tri par insertion

(le tri du joueur de cartes !)

• Ordonner les deux premiers ´el´ements

• Ins´erer le 3e ´el´ement de mani`ere `a ce que les 3 premiers

´el´ements soient tri´es

• Ins´erer le 4e ´el´ement `a “sa” place pour que. . .

• . . .

• Ins´erer le ne ´el´ement `a sa place.

A la fin de la ie it´eration, les i premiers ´el´ements de T sont tri´es et rang´es au d´ebut du tableau T!.

(6)

Le tri par insertion

Pour i = 2. . .n : Ins´erer(T,i)

Le tri par insertion

Pour i = 2. . .n : Ins´erer(T,i) Ins´erer(T,k)

si k >1 alors

si T[k −1]> T[k] alors T[k] ↔T[k−1]

Ins´erer(T,k-1)

Le tri par insertion

Pour i = 2. . .n : Ins´erer(T,i) Ins´erer(T,k)

si k > 1 alors

si T[k −1] >T[k] alors T[k]↔T[k −1]

Ins´erer(T,k-1)

Dans le pire cas ou en moyenne, la complexit´e du tri par s´election est en O(n2).

Plan

1 Introduction

2 Algorithmes de tri Tri par s´election Tri par insertion Tri fusion Le tri rapide

Des tris avec des arbres. . . Tri par tas

Optimalit´e des algorithmes de tri Activit´e en classe

3 Travaux pratiques sur machines

(7)

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement:

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement :

5,10,13,15,19,20,35 3,7,12,16,25,38,40

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement:

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement :

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5,

(8)

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement:

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement :

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement:

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement :

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12, 13,

(9)

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement:

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12, 13, 15,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement :

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12, 13, 15,16,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement:

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12, 13, 15, 16, 19,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement :

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12, 13, 15, 16, 19,20,

(10)

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement:

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12, 13, 15, 16, 19, 20, 25,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement :

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12, 13, 15, 16, 19, 20, 25, 35,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement:

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12, 13, 15, 16, 19, 20, 25, 35,38,

Le tri fusion

id´ee : fusionner deux tableaux tri´es pour former un unique tableau tri´e se fait facilement :

5,10,13,15,19,20,35 3,7,12,16,25,38,40

3, 5, 7, 10, 12, 13, 15, 16, 19, 20, 25, 35, 38, 40

(11)

Tri fusion

Etant donn´e un tableau (ou une liste) de´ T[1, . . . ,n] :

• si n = 1, retourner le tableau T !

• sinon :

Trier le sous-tableau T[1. . .

n 2]

Trier le sous-tableau T[n2 + 1. . .n]

Fusionner ces deux sous-tableaux. . .

• Il s’agit d’un algorithme “diviser-pour-r´egner”.

• O(nlogn) op´erations (au pire).

Plan

1 Introduction

2 Algorithmes de tri Tri par s´election Tri par insertion Tri fusion Le tri rapide

Des tris avec des arbres. . . Tri par tas

Optimalit´e des algorithmes de tri Activit´e en classe

3 Travaux pratiques sur machines

Le tri rapide

Un autre tri r´ecursif. . . plus efficace en pratique.

Etant donn´e un tableau de´ T[1, . . . ,n] :

• si n = 1, retourner le tableau T.

• sinon :

Choisir un ´el´ement (le “pivot”) p dans T

Placer les ´el´ements inf´erieurs `a p au d´ebut de T

Placer p `a sa place dans T

Placer les ´el´ements sup´erieurs `a p `a la fin de T

Trier la premi`ere partie de T puis la seconde. . . (plus de fusion !)

Le tri rapide

20, 15, 10, 35, 19, 13, 5, 3, 12, 7, 16, 40, 25, 38

(12)

Le tri rapide

20, 15, 10, 35, 19, 13, 5, 3, 12, 7, 16, 40, 25, 38

15, 10, 19, 13, 5, 3, 12, 7, 16,

! "# $

`a trier !

20,35, 40, 25, 38

! "# $

`a trier !

Complexit´e du tri rapide

Dans le pire cas, la complexit´e du tri rapide est en O(n2).

Mais en moyenne, elle est en O(n·log(n)).

Références

Documents relatifs

Si on a une unit´ e d’information pour un des ´ el´ ements (par exemple, ne peut pas ˆ etre le plus petit) et z´ ero pour l’autre, la comparaison peut nous donner une unit´

Pour protéger la planète, tu peux agir de mille façons : économiser l’eau, éteindre la lumière lorsque tu quittes une pièce, prêter des objets à tes amis,

L’après midi, Paul DEFFONTAINE, président du Cercle National du Recyclage et Vice-président de Lille Mé- tropole Communauté urbaine, animera les débats consacrés aux avancées

Du coup, dans un premier temps, on ajoute à M le nombre P suivi d'un certain nombres de 0, pour changer la parité d'un chiffre donné, tout en conservant la parité des chiffres à

procedure saisie(var t:tab;var n:integer);.

Ilôt Thonier (allée des Platanes) x H.L.M.. Nomazy (allée des

Faire chanter Margaret Red Eyes Stanford, la conseillère culturelle de la mairie pour avoir cédé aux pressions des Pueblos pour que cette vente aux enchères ait lieu et qu’ils

Or pour que l’élément de rang i et l’élément de rang j soient comparés il faut que le pivot ne soit jamais choisi entre l’élément de rang i et de rang j avant le choix de i ou