L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles...

27
LES TRIS Utilisation des tableaux

Transcript of L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles...

Page 1: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

LES TRISUtilisation des tableaux

Page 2: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

PLAN

Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion

Page 3: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

INTRODUCTION

Les tableaux permettent de stocker plusieurs éléments de même type au sein d'une seule entité, lorsque le type de ces éléments possède un ordre total, on peut donc les ranger en ordre croissant ou décroissant,

trier un tableau c'est donc ranger les éléments d'un tableau en ordre croissant ou décroissant.

Dans ce cours on ne fera que des tris en ordre croissant. Il existe plusieurs méthodes de tri qui se différencient par leur complexité d'exécution et leur complexité de compréhension pour le programmeur.

Page 4: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

INTRODUCTION

Tous les algorithmes de tri utilisent une procédure qui permet d'échanger (de permuter) la valeur de deux variables dans le cas où les variables sont entières, la procédure échanger est la suivante :

public void echanger(int[] tableau, int indice1, int indice2){ int iTemp; iTemp = tableau[indice1]; tableau[indice1] = tableau[indice2]; tableau[indice2] = iTemp ;}

Page 5: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

PLAN

Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion

Page 6: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE INSERTION

Dans ce cas, itérativement, nous insérons le prochain élément dans la partie qui est déjà triée précédemment. La partie de départ qui est triée est le premier élément.

Page 7: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE INSERTION

La liste à trier est divisée en deux : la partie gauche est triée, et la partie droite est non triée.

À chaque passage, le premier élément de la partie non triée est introduit dans la partie triée, de telle sorte que cette dernière reste triée.

Pour une liste de n éléments, n − 1 passages sont nécessaires. La complexité de l’algorithme est donc en O(n2).

Page 8: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE INSERTION

Exemple:

Page 9: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE INSERTION

Algorithme

Page 10: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE INSERTION Avantages du tri par insertion : Méthode naturelle,

facile à programmer. De plus, la méthode est d’autant plus rapide que la liste à trier est presque ordonnée : la méthode est plus efficace pour une liste presque triée que pour une liste dans un ordre aléatoire.

Un désavantage du tri par insertion est que, même si une liste est presque triée, l’introduction d’un nouvel élément dans cette liste peut nécessiter le mouvement de la plupart des éléments de la liste. Si la liste à trier est très grande, ce mouvement de tous les éléments à chaque introduction d’un nouvel élément dans la liste peut être très coûteux. Il serait souhaitable de pouvoir immédiatement placer un élément à sa place finale. C’est l’avantage du tri par sélection.

Page 11: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

PLAN

Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion

Page 12: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE SÉLECTION

La liste à trier est divisée en deux : la partie gauche est triée et la partie droite est non triée.

De plus, tous les éléments de la partie gauche sont plus petits (ou égaux) que les éléments de la partie droite. À chaque passage, l’élément minimal de la partie non triée est échangé avec le premier élément de la liste non triée. Ainsi, la liste triée croît de 1 élément.

Page 13: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE SÉLECTION

Répéter 1. chercher le plus grand (le plus petit) élément 2. le mettre à la fin (au début)

Page 14: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE SÉLECTION

Exemple:

Page 15: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE SÉLECTION

Algorithme

Page 16: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRIE SÉLECTION

Complexité : Le pire cas, le meilleur cas et le cas moyen sont pareils (pourquoi?)

Pour trouver le plus petit éléments, (n-1) itérations sont nécessaires, pour le 2e plus petit élément (n-2) itérations sont effectuées, .… Pour trouver le dernier plus petit élément, 0 itération sont effectuées. La complexité est donc de

O(n(n-1)/2)

Page 17: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

PLAN

Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion

Page 18: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRI À BULLES

Le trie à bulle consiste à parcourir le tableau, par exemple de gauche à droite, en comparant les éléments côte à côte et en les permutant si ils ne sont pas dans le bon ordre. Au cours d’une passe du tableau, les plus grands éléments remontent de proche en proche vers la droite comme des bulles vers la surface.

On s’arrête dès que l’on détecte que le tableau est trié : si aucune permutation n’a été faite au cours d’une passe.

Page 19: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRI À BULLES

La stratégie de cet algorithme est comme suit : 1. Parcourir le tableau en comparant deux à deux

les éléments successifs, permuter s'ils ne sont pas dans l'ordre.

2. Répéter tant que des permutations sont effectuées.

Page 20: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRI À BULLES

Exemple:

Page 21: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRI À BULLES

Algorithme:

FONCTION Tri_bulle (Tableau a[1:n])REPETER permut = FAUX POUR i DE 0 à n-1 FAIRE SI a[i] > a[i+1] ALORS

echanger a[i] et a[i+1]permut = VRAI

FIN SITANT QUE permut = VRAIFIN FONCTION

Page 22: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

TRI À BULLES

La différence entre le tri à bulles et le tri par sélection est que le tri à bulle compare chaque paire (u,v) de cases consécutives du tableau non trié en commençant par le début du tableau. À chaque fois que u > v, u et v sont échangés. Le fait de comparer chaque paire de cases consécutives permet de faire moins de passages que le tri par sélection : si au cours d’un passage aucun échange n’a été effectué, alors la liste est triée et on s’arrête. La complexité dans le pire des cas est toujours O(n2), mais d’un point de vue pratique, le tri à bulles est plus rapide.

Page 23: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

PLAN

Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion

Page 24: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

MÉTHODE DE RECHERCHE

Recherche séquentielle On cherche à partir du début et on parcours

l’ensemble des valeurs de notre tableau jusqu’à ce qu’on ait trouvé la valeur souhaité.

Page 25: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

MÉTHODES DE RECHERCHE

La méthode dichotomique La dichotomie (« couper en deux » en grec)

est, en algorithmique, un processus  de recherche où, à chaque étape, on coupe en deux parties (pas forcément égales) un espace de recherche qui devient restreint à l'une de ces deux parties.

Page 26: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

EXEMPLE Prenons un exemple simple et ludique pour illustrer le mécanisme de recherche par dichotomie : Pierre propose à Paul le jeu suivant : « choisis en secret un nombre compris entre 0 et 100 ; je vais

essayer de le deviner le plus rapidement possible, en ne pouvant que te poser des questions auxquelles tu réponds par oui ou par non ». Paul choisit 66 et attend les questions de Pierre :

Pierre sait que le nombre est entre 0 et 100 ; au milieu se trouve 50, il demande donc : « Est-ce que le nombre est plus grand que 50 ? »

Paul : « Oui » Pierre sait maintenant que le nombre est entre 51 et 100 ; au milieu se trouve 75, il demande donc :

« Est-ce que le nombre est plus grand que 75 ? » Paul : « Non » Pierre sait maintenant que le nombre est entre 51 et 75 ; au milieu se trouve 63, il demande donc :

« Est-ce que le nombre est plus grand que 63 ? » Paul : « Oui » Pierre sait maintenant que le nombre est entre 64 et 75 ; au milieu se trouve 69, il demande donc :

« Est-ce que le nombre est plus grand que 69 ? » Paul : « Non » Pierre sait maintenant que le nombre est entre 64 et 69 ; au milieu se trouve 66, il demande donc :

« Est-ce que le nombre est plus grand que 66 ? » Paul : « Non » Pierre sait maintenant que le nombre est entre 64 et 66 ; au milieu se trouve 65, il demande donc :

« Est-ce que le nombre est plus grand que 65 ? » Paul : « Oui » Pierre sait maintenant que le nombre est entre 66 et 66, autrement dit qu'il s'agit de 66 : il a trouvé

le nombre choisi par Paul. Cette méthode itérative permet à Pierre de trouver le nombre en posant en moyenne moins de

questions que s'il procédait par des questions du type « Est-ce que le nombre est égal à 30 ? ».

Page 27: L ES TRIS Utilisation des tableaux. P LAN Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion.

ALGORITHME