1 / 27

Les tris

Les tris. Utilisation des tableaux. Plan. Introduction Tri insertion Tri sélection Tri à bulles Méthodes de recherche Conclusion. Introduction.

gerard
Download Presentation

Les tris

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Les tris Utilisation des tableaux

  2. Plan • Introduction • Tri insertion • Tri sélection • Tri à bulles • Méthodes de recherche • Conclusion

  3. 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.

  4. 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 voidechanger(int[] tableau, int indice1, int indice2) { intiTemp; iTemp = tableau[indice1]; tableau[indice1] = tableau[indice2]; tableau[indice2] = iTemp ; }

  5. Plan • Introduction • Tri insertion • Tri sélection • Tri à bulles • Méthodes de recherche • Conclusion

  6. 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.

  7. 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).

  8. Trie insertion • Exemple:

  9. Trie insertion • Algorithme

  10. 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.

  11. Plan • Introduction • Tri insertion • Tri sélection • Tri à bulles • Méthodes de recherche • Conclusion

  12. 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.

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

  14. Trie sélection • Exemple:

  15. Trie sélection • Algorithme

  16. 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)

  17. Plan • Introduction • Tri insertion • Tri sélection • Tri à bulles • Méthodes de recherche • Conclusion

  18. 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.

  19. 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.

  20. Tri à bulles • Exemple:

  21. 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 echangera[i] et a[i+1] permut= VRAI FIN SI TANT QUE permut = VRAI FIN FONCTION

  22. 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.

  23. Plan • Introduction • Tri insertion • Tri sélection • Tri à bulles • Méthodes de recherche • Conclusion

  24. 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é.

  25. 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.

  26. 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 ? ».

  27. Algorithme

More Related