SlideShare une entreprise Scribd logo
Comprendre et Comparer les Algorithmes de Tri
Qu'est-ce qu'un
Algorithme de
Tri ?
Les algorithmes de tri sont des procédures
mathématiques fondamentales utilisées pour
classer des données dans un ordre spécifique,
comme par exemple du plus petit au plus grand.
Ils jouent un rôle essentiel dans de nombreux
domaines, depuis la gestion de bases de données
jusqu'à l'optimisation des processus industriels.
Dans cette présentation, nous explorerons les
principaux types d'algorithmes de tri et leurs
applications pratiques.
Concepts de
Base des
Algorithmes de
Tri
Le cœur de tout
algorithme de tri
est la
comparaison
des éléments
entre eux. C'est
ce qui permet de
déterminer leur
ordre relatif et
de les
positionner
correctement.
Une fois les
éléments
comparés,
l'algorithme de tri
doit les permuter,
c'est-à-dire les
échanger de
position, afin de
les placer dans
l'ordre souhaité.
COMPARAISON PERMUTATION
• Tri par
Insertion
(Insertion sort) • Tri par
Selection
(Selection sort)
• Tri A Bulles
(bubble sort)
• Tri Fusion
(Merge
sort)
• Tri Rapid
(Quick sort)
Tri par selection
Principe : Sélectionne le plus petit élément non
trié et l'échange avec le premier élément non
trié.
Meilleure utilisation : Petits ensembles de
données, souvent utilisé à des fins
pédagogiques.
Pire cas : Listes volumineuses.
algoTri3algoTri3algoTri3algoTri3algoTri3
algoTri3algoTri3algoTri3algoTri3algoTri3
CODE SOURCE
introduction
Le tri à bulle est un algorithme de tri qui compare des éléments adjacents
dans une liste et les échange s'ils sont dans le mauvais ordre, répétant ce
processus jusqu'à ce que la liste soit triée.
Principe général du tri à bulle
Le tri à bulle repose sur un mécanisme simple :
Comparaison : Parcourez la liste d'éléments en comparant chaque paire d'éléments
adjacents.
Échange : Si le premier élément est plus grand que le second, échangez-les.
Répétition : Répétez ce processus pour chaque élément de la liste jusqu'à ce que le plus
grand élément "remonte" à la fin de la liste.
Itération : Continuez à parcourir la liste, en ignorant les éléments déjà triés à la fin, jusqu'à
ce qu'aucun échange ne soit nécessaire, indiquant que la liste est entièrement triée.
algoTri3algoTri3algoTri3algoTri3algoTri3
Exemple de pseudocode pour le tri à bulle :
fonction tri_a_bulle(liste):
n = longueur(liste)
pour i allant de 0 à n-1:
pour j allant de 0 à n-i-1:
si liste[j] > liste[j+1]:
échanger liste[j] et liste[j+1]
retourner liste
Code en Python
.
Avantages et inconvénients
Simplicité
Stabilité
Pas adapté aux
grandes listes
Nombre élevé
d’échanges
jeu de tri a bulle
Une approche interactive pour
comprendre l'algorithme du
tri à bulle
1
2
3
9
7
6
5
4
11
22
16
III. Tri par insertion
Definition:
Le tri par insertion est un algorithme qui organise une liste en insérant chaque élément dans sa
position correcte dans une sous-liste déjà triée. Il fonctionne en parcourant la liste de gauche à
droite et en déplaçant les éléments jusqu’à trouver leur place.
Importance :
· Simple à implémenter : Facile à comprendre, idéal pour débuter en algorithmique.
· Efficace pour petites listes : Performant pour les petites quantités de données ou les listes
presque triées.
· Algorithme stable : Il conserve l'ordre des éléments égaux.
· Tri en place : Ne nécessite pas de mémoire supplémentaire.
algoTri3algoTri3algoTri3algoTri3algoTri3
algoTri3algoTri3algoTri3algoTri3algoTri3
Tri Rapid
Principe : Algorithme "diviser pour régner". Sélectionne un pivot, partitionne
le tableau en éléments plus petits ou plus grands, et trie récursivement les
sous-tableaux.
Meilleure utilisation : Grandes listes, bon algorithme polyvalent.
Pire cas : Mauvais choix de pivot.
Complexité : O(n log n) en moyenne, O(n²) dans le pire des cas.
algoTri3algoTri3algoTri3algoTri3algoTri3
algoTri3algoTri3algoTri3algoTri3algoTri3
Tri fusion
Principe : Divise récursivement le tableau en
deux, trie chaque moitié, puis fusionne les
moitiés triées.
Meilleure utilisation : Grandes listes, tri
stable.
Pire cas : Nécessite de la mémoire
supplémentaire pour la fusion.
Complexité : O(n log n)
algoTri3algoTri3algoTri3algoTri3algoTri3
algoTri3algoTri3algoTri3algoTri3algoTri3
algoTri3algoTri3algoTri3algoTri3algoTri3
Comparaison des
Algorithmes de Tri
Une analyse des performances et des cas d'utilisation
De plus sur les Algorithmes de Tri
Les algorithmes de tri sont essentiels pour organiser des
données, qu'il s'agisse de nombres, de mots, ou d'éléments
quelconques dans un ordre particulier (croissant ou
décroissant).
L'efficacité d'un algorithme de tri est mesurée principalement
par sa complexité temporelle, qui indique combien de
temps l'algorithme prendra pour trier une liste de taille nnn.
Concept de Complexité
• Complexité temporelle : Mesure du temps d'exécution d'un
algorithme en fonction de la taille des données d'entrée
(nnn).
• Types de complexité :
• Meilleur cas : Performance optimale de l'algorithme.
• Pire cas : Performance dans le scénario le plus défavorable.
• Cas moyen : Performance attendue dans des conditions typiques.
Complexités des Algorithmes (classées)
Complexité Algorithmes
O(n+k)
Tri par comptage
(plage des valeurs est limitée)
O(n.logn)
Tri rapide, Tri fusion, Tri par tas
(grandes listes, bases de données massives)
O(n^2)
Tri par insertion, Tri par sélection, Tri à bulles
(petites listes ou pour fins pédagogiques)
Comparaison des Algorithmes par Cas
d'Utilisation (Listes longues)
Algorithme Temps estimé (10 000 éléments)
Tri à bulles 150 sec
Tri par insertion 120 sec
Tri par sélection 140 sec
Tri rapide 1.5 sec
Tri fusion 1.8 sec
Algorithmes efficaces : O(n.logn)
Comparaison pour Listes Presque
Triées
Algorithme
Temps estimé (1 000
éléments)
Tri à bulles 0.3 sec
Tri par insertion 0.2 sec
Tri par sélection 5 sec
Tri rapide 0.7 sec
Tri fusion 0.8 sec
Tri par tas 0.7 sec
Pour des listes presque triées, des algorithmes comme le
tri par insertion sont particulièrement efficaces, car ils
n'ont qu'à ajuster quelques éléments.
Performance sur Données Inversées
Algorithme
Temps estimé (1 000
éléments)
Tri à bulles 20 sec
Tri par insertion 15 sec
Tri par sélection 20 sec
Tri rapide 10 sec
Tri fusion 1.2 sec
Tri par tas 1.2 sec
Le pire cas pour les algorithmes quadratiques O(n^2), comme le tri à bulles ou le tri par insertion, est une
liste complètement inversée.
Données en Temps Réel (Ajouts
Progressifs)
• Dans un contexte où de nouvelles données sont
continuellement ajoutées, comme des systèmes en temps
réel, le tri par insertion est très efficace, car il permet
d’ajouter et de trier rapidement les nouveaux éléments.
Algorithme Temps estimé (100 ajouts)
Tri à bulles 10 sec
Tri par insertion 0.5 sec
Tri par sélection 12 sec
Tri rapide 1 sec
Tri fusion 1.2 sec
Tri par tas 1 sec
Grandes bases de données (plusieurs
millions d'éléments)
Algorithme
Vitesse estimée (sec) pour 1
million d'éléments
Tri à bulles 3 heures
Tri par insertion 2.5 heures
Tri par sélection 3 heures
Tri rapide 10 sec
Tri fusion 12 sec
Tri par tas 11 sec
Pour des systèmes de grande échelle, les algorithmes à complexité O(n.log⁡
n) sont absolument nécessaires.
Tri multi-critères (tri basé sur plusieurs
attributs)
• Dans des contextes comme le tri de données avec
plusieurs critères (par exemple, tri d'une liste
d'objets par nom, puis par âge), le tri stable comme
le tri fusion est utile pour préserver l'ordre relatif
des éléments.
Algorithme
Vitesse estimée (sec) pour 500
éléments avec 3 critères
Tri à bulles 1.5 sec
Tri par insertion 1.2 sec
Tri par sélection 1.8 sec
Tri rapide 0.5 sec
Tri fusion 0.6 sec
Tri par tas 0.6 sec
Listes Longues Listes Presque Triées Données Inversées Ajouts Progressifs Grandes Bases de
Données
Tri Multi-Critères
0
20
40
60
80
100
120
140
160
150 0.3 20 10
10800
1.5
120 0.2 15 0.5
9000
1.2
140 5 20 12
10800
1.8
1.5 0.7 10 1 10 0.5
1.8 0.8 1.2 1.2 12 0.6
COMPARAISON DES ALGO DE TRI
Tri A Bulle Tri par Insertion Tri par Sélection Tri Rapide Tri Fusion
SITUATION
TEMPS
Résumé des Cas d'Utilisation Courants
• Tri à bulles : Principalement pour l'enseignement, en raison
de sa simplicité.
• Tri par insertion : Idéal pour les petites listes ou les listes
presque triées.
• Tri rapide : Extrêmement efficace pour les grandes listes.
• Tri fusion : Performant pour de vastes ensembles de
données, avec une stabilité garantie.
• Tri par tas : Convient aux situations où un tri en place est
nécessaire.
Résumé des Cas d'Utilisation Courants
• Listes longues : Tri rapide, Tri fusion, Tri par tas sont les
meilleurs choix.
• Listes presque triées : Tri par insertion excelle.
• Grandes bases de données : Tri rapide, Tri fusion, Tri par
tas dominent.
• Données en temps réel : Tri par insertion fonctionne bien
pour des ajouts progressifs.
• Utilisation pédagogique : Tri à bulles, Tri par insertion sont
populaires pour l'apprentissage.
points clés abordés :
• La performance des algorithmes de tri varie selon les cas
d'utilisation.
• Choisir le bon algorithme peut considérablement améliorer
l'efficacité du traitement des données.
L'Algorithme Ultime ?
Introduction
aux
Algorithmes
Hybrides
Qu'est-ce qu'un Algorithme Hybride ?
• Un algorithme hybride combine les stratégies de
plusieurs algorithmes de tri pour tirer parti de leurs
forces respectives et s'adapter aux caractéristiques
spécifiques des données.
Pourquoi Utiliser des Algorithmes
Hybrides ?
• Efficacité Améliorée : En utilisant la meilleure méthode
selon la situation, les algorithmes hybrides peuvent offrir de
meilleures performances que les algorithmes traditionnels.
• Flexibilité : Ils s'adaptent aux différentes structures de
données, qu'il s'agisse de listes presque triées ou de grandes
quantités de données aléatoires.
Exemples d'Algorithmes Hybrides :
• Timsort : Combine le tri par insertion et le tri fusion,
optimisé pour les données réelles(python).
• Introsort : Utilise le tri rapide et le tri par tas pour
éviter le pire cas du tri rapide(c++).

Contenu connexe

PDF
algorithmes-de-tri-insertion-rapide-fusion.pdf
PDF
Les algorithmes de tri
PDF
algo-imsi-2.pdf
PDF
477d1e_e8372c8ed9114ac38eef1e80b654c67e_241008_201854.pdf
PPTX
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
PPT
L’analyse et Expérimentation de algorithme du Tri par sélection
PDF
Algo tri
PDF
Chap5 La manipulation des iterables en python
algorithmes-de-tri-insertion-rapide-fusion.pdf
Les algorithmes de tri
algo-imsi-2.pdf
477d1e_e8372c8ed9114ac38eef1e80b654c67e_241008_201854.pdf
MasterClass SQL : Comment avoir de bonnes performances avec SQL Server ?
L’analyse et Expérimentation de algorithme du Tri par sélection
Algo tri
Chap5 La manipulation des iterables en python

Similaire à algoTri3algoTri3algoTri3algoTri3algoTri3 (6)

PDF
cours TRI selection insertion bublle sort
PPT
Recommendation sytem Python
PDF
Recherche Opérationnelle - Optimisation (notions de base)
PDF
Cours algorithmique et complexite complet
PDF
Cours algorithmique et complexite
PDF
Cours algorithmique et complexite complet
cours TRI selection insertion bublle sort
Recommendation sytem Python
Recherche Opérationnelle - Optimisation (notions de base)
Cours algorithmique et complexite complet
Cours algorithmique et complexite
Cours algorithmique et complexite complet
Publicité

algoTri3algoTri3algoTri3algoTri3algoTri3

  • 1. Comprendre et Comparer les Algorithmes de Tri
  • 3. Les algorithmes de tri sont des procédures mathématiques fondamentales utilisées pour classer des données dans un ordre spécifique, comme par exemple du plus petit au plus grand. Ils jouent un rôle essentiel dans de nombreux domaines, depuis la gestion de bases de données jusqu'à l'optimisation des processus industriels. Dans cette présentation, nous explorerons les principaux types d'algorithmes de tri et leurs applications pratiques.
  • 4. Concepts de Base des Algorithmes de Tri Le cœur de tout algorithme de tri est la comparaison des éléments entre eux. C'est ce qui permet de déterminer leur ordre relatif et de les positionner correctement. Une fois les éléments comparés, l'algorithme de tri doit les permuter, c'est-à-dire les échanger de position, afin de les placer dans l'ordre souhaité. COMPARAISON PERMUTATION
  • 5. • Tri par Insertion (Insertion sort) • Tri par Selection (Selection sort) • Tri A Bulles (bubble sort) • Tri Fusion (Merge sort) • Tri Rapid (Quick sort)
  • 6. Tri par selection Principe : Sélectionne le plus petit élément non trié et l'échange avec le premier élément non trié. Meilleure utilisation : Petits ensembles de données, souvent utilisé à des fins pédagogiques. Pire cas : Listes volumineuses.
  • 10. introduction Le tri à bulle est un algorithme de tri qui compare des éléments adjacents dans une liste et les échange s'ils sont dans le mauvais ordre, répétant ce processus jusqu'à ce que la liste soit triée. Principe général du tri à bulle Le tri à bulle repose sur un mécanisme simple : Comparaison : Parcourez la liste d'éléments en comparant chaque paire d'éléments adjacents. Échange : Si le premier élément est plus grand que le second, échangez-les. Répétition : Répétez ce processus pour chaque élément de la liste jusqu'à ce que le plus grand élément "remonte" à la fin de la liste. Itération : Continuez à parcourir la liste, en ignorant les éléments déjà triés à la fin, jusqu'à ce qu'aucun échange ne soit nécessaire, indiquant que la liste est entièrement triée.
  • 12. Exemple de pseudocode pour le tri à bulle : fonction tri_a_bulle(liste): n = longueur(liste) pour i allant de 0 à n-1: pour j allant de 0 à n-i-1: si liste[j] > liste[j+1]: échanger liste[j] et liste[j+1] retourner liste
  • 14. Avantages et inconvénients Simplicité Stabilité Pas adapté aux grandes listes Nombre élevé d’échanges
  • 15. jeu de tri a bulle Une approche interactive pour comprendre l'algorithme du tri à bulle 1 2 3 9 7 6 5 4 11 22 16
  • 16. III. Tri par insertion Definition: Le tri par insertion est un algorithme qui organise une liste en insérant chaque élément dans sa position correcte dans une sous-liste déjà triée. Il fonctionne en parcourant la liste de gauche à droite et en déplaçant les éléments jusqu’à trouver leur place. Importance : · Simple à implémenter : Facile à comprendre, idéal pour débuter en algorithmique. · Efficace pour petites listes : Performant pour les petites quantités de données ou les listes presque triées. · Algorithme stable : Il conserve l'ordre des éléments égaux. · Tri en place : Ne nécessite pas de mémoire supplémentaire.
  • 19. Tri Rapid Principe : Algorithme "diviser pour régner". Sélectionne un pivot, partitionne le tableau en éléments plus petits ou plus grands, et trie récursivement les sous-tableaux. Meilleure utilisation : Grandes listes, bon algorithme polyvalent. Pire cas : Mauvais choix de pivot. Complexité : O(n log n) en moyenne, O(n²) dans le pire des cas.
  • 22. Tri fusion Principe : Divise récursivement le tableau en deux, trie chaque moitié, puis fusionne les moitiés triées. Meilleure utilisation : Grandes listes, tri stable. Pire cas : Nécessite de la mémoire supplémentaire pour la fusion. Complexité : O(n log n)
  • 26. Comparaison des Algorithmes de Tri Une analyse des performances et des cas d'utilisation
  • 27. De plus sur les Algorithmes de Tri Les algorithmes de tri sont essentiels pour organiser des données, qu'il s'agisse de nombres, de mots, ou d'éléments quelconques dans un ordre particulier (croissant ou décroissant). L'efficacité d'un algorithme de tri est mesurée principalement par sa complexité temporelle, qui indique combien de temps l'algorithme prendra pour trier une liste de taille nnn.
  • 28. Concept de Complexité • Complexité temporelle : Mesure du temps d'exécution d'un algorithme en fonction de la taille des données d'entrée (nnn). • Types de complexité : • Meilleur cas : Performance optimale de l'algorithme. • Pire cas : Performance dans le scénario le plus défavorable. • Cas moyen : Performance attendue dans des conditions typiques.
  • 29. Complexités des Algorithmes (classées) Complexité Algorithmes O(n+k) Tri par comptage (plage des valeurs est limitée) O(n.logn) Tri rapide, Tri fusion, Tri par tas (grandes listes, bases de données massives) O(n^2) Tri par insertion, Tri par sélection, Tri à bulles (petites listes ou pour fins pédagogiques)
  • 30. Comparaison des Algorithmes par Cas d'Utilisation (Listes longues) Algorithme Temps estimé (10 000 éléments) Tri à bulles 150 sec Tri par insertion 120 sec Tri par sélection 140 sec Tri rapide 1.5 sec Tri fusion 1.8 sec Algorithmes efficaces : O(n.logn)
  • 31. Comparaison pour Listes Presque Triées Algorithme Temps estimé (1 000 éléments) Tri à bulles 0.3 sec Tri par insertion 0.2 sec Tri par sélection 5 sec Tri rapide 0.7 sec Tri fusion 0.8 sec Tri par tas 0.7 sec Pour des listes presque triées, des algorithmes comme le tri par insertion sont particulièrement efficaces, car ils n'ont qu'à ajuster quelques éléments.
  • 32. Performance sur Données Inversées Algorithme Temps estimé (1 000 éléments) Tri à bulles 20 sec Tri par insertion 15 sec Tri par sélection 20 sec Tri rapide 10 sec Tri fusion 1.2 sec Tri par tas 1.2 sec Le pire cas pour les algorithmes quadratiques O(n^2), comme le tri à bulles ou le tri par insertion, est une liste complètement inversée.
  • 33. Données en Temps Réel (Ajouts Progressifs) • Dans un contexte où de nouvelles données sont continuellement ajoutées, comme des systèmes en temps réel, le tri par insertion est très efficace, car il permet d’ajouter et de trier rapidement les nouveaux éléments.
  • 34. Algorithme Temps estimé (100 ajouts) Tri à bulles 10 sec Tri par insertion 0.5 sec Tri par sélection 12 sec Tri rapide 1 sec Tri fusion 1.2 sec Tri par tas 1 sec
  • 35. Grandes bases de données (plusieurs millions d'éléments) Algorithme Vitesse estimée (sec) pour 1 million d'éléments Tri à bulles 3 heures Tri par insertion 2.5 heures Tri par sélection 3 heures Tri rapide 10 sec Tri fusion 12 sec Tri par tas 11 sec Pour des systèmes de grande échelle, les algorithmes à complexité O(n.log⁡ n) sont absolument nécessaires.
  • 36. Tri multi-critères (tri basé sur plusieurs attributs) • Dans des contextes comme le tri de données avec plusieurs critères (par exemple, tri d'une liste d'objets par nom, puis par âge), le tri stable comme le tri fusion est utile pour préserver l'ordre relatif des éléments.
  • 37. Algorithme Vitesse estimée (sec) pour 500 éléments avec 3 critères Tri à bulles 1.5 sec Tri par insertion 1.2 sec Tri par sélection 1.8 sec Tri rapide 0.5 sec Tri fusion 0.6 sec Tri par tas 0.6 sec
  • 38. Listes Longues Listes Presque Triées Données Inversées Ajouts Progressifs Grandes Bases de Données Tri Multi-Critères 0 20 40 60 80 100 120 140 160 150 0.3 20 10 10800 1.5 120 0.2 15 0.5 9000 1.2 140 5 20 12 10800 1.8 1.5 0.7 10 1 10 0.5 1.8 0.8 1.2 1.2 12 0.6 COMPARAISON DES ALGO DE TRI Tri A Bulle Tri par Insertion Tri par Sélection Tri Rapide Tri Fusion SITUATION TEMPS
  • 39. Résumé des Cas d'Utilisation Courants • Tri à bulles : Principalement pour l'enseignement, en raison de sa simplicité. • Tri par insertion : Idéal pour les petites listes ou les listes presque triées. • Tri rapide : Extrêmement efficace pour les grandes listes. • Tri fusion : Performant pour de vastes ensembles de données, avec une stabilité garantie. • Tri par tas : Convient aux situations où un tri en place est nécessaire.
  • 40. Résumé des Cas d'Utilisation Courants • Listes longues : Tri rapide, Tri fusion, Tri par tas sont les meilleurs choix. • Listes presque triées : Tri par insertion excelle. • Grandes bases de données : Tri rapide, Tri fusion, Tri par tas dominent. • Données en temps réel : Tri par insertion fonctionne bien pour des ajouts progressifs. • Utilisation pédagogique : Tri à bulles, Tri par insertion sont populaires pour l'apprentissage.
  • 41. points clés abordés : • La performance des algorithmes de tri varie selon les cas d'utilisation. • Choisir le bon algorithme peut considérablement améliorer l'efficacité du traitement des données.
  • 44. Qu'est-ce qu'un Algorithme Hybride ? • Un algorithme hybride combine les stratégies de plusieurs algorithmes de tri pour tirer parti de leurs forces respectives et s'adapter aux caractéristiques spécifiques des données.
  • 45. Pourquoi Utiliser des Algorithmes Hybrides ? • Efficacité Améliorée : En utilisant la meilleure méthode selon la situation, les algorithmes hybrides peuvent offrir de meilleures performances que les algorithmes traditionnels. • Flexibilité : Ils s'adaptent aux différentes structures de données, qu'il s'agisse de listes presque triées ou de grandes quantités de données aléatoires.
  • 46. Exemples d'Algorithmes Hybrides : • Timsort : Combine le tri par insertion et le tri fusion, optimisé pour les données réelles(python). • Introsort : Utilise le tri rapide et le tri par tas pour éviter le pire cas du tri rapide(c++).