Skip to content

🌟 Cours : Les algorithmes de tri

1. 🔎 Qu’est-ce qu’un tri en informatique ?

En informatique, on manipule trÚs souvent des données : des nombres, des mots, des objets, des dates, etc. Lorsque ces données sont rangées dans un certain ordre, il est beaucoup plus facile et rapide :

  • d’effectuer des recherches,
  • de repĂ©rer des valeurs importantes (minimum, maximum
),
  • de faire des statistiques,
  • ou encore d’organiser des informations dans un tableau ou un programme.

👉 C’est pour cela qu’on utilise des algorithmes de tri.

Exemples concrets oĂč le tri est essentiel :
  • ranger les messages sur un tĂ©lĂ©phone par date,
  • classer des photos par nom ou par annĂ©e,
  • organiser un classement sportif du meilleur au moins bon,
  • trier des produits par prix croissant sur un site d’achat.

🎯 DĂ©finition

Un tri est une opĂ©ration qui consiste Ă  rĂ©ordonner les Ă©lĂ©ments d’une liste selon un critĂšre prĂ©cis.

Exemples de critĂšres :
  • du plus petit au plus grand (croissant),
  • du plus grand au plus petit (dĂ©croissant),
  • ordre alphabĂ©tique (A → Z),
  • ordre chronologique (du plus ancien au plus rĂ©cent).

👉 Le mot algorithme signifie simplement une suite d’instructions prĂ©cises que l’ordinateur peut exĂ©cuter pour obtenir un rĂ©sultat.


📩 Les structures manipulĂ©es : les listes

Les algorithmes de tri s’appliquent Ă  des listes ou tableaux. Une liste est une suite ordonnĂ©e d’élĂ©ments, par exemple :

[12, 5, 9, 3, 14]
["Alice", "Brian", "Clara"]

Chaque élément de la liste a :

  • une valeur (ex : 12),
  • une position (ex : 12 est Ă  la position 0).

Quand on applique un tri, on modifie l’ordre des valeurs, mais on garde les mĂȘmes Ă©lĂ©ments.


🔍 Tri "manuel" vs tri algorithmique

Les humains trient instinctivement :

  • un paquet de cartes,
  • leurs fichiers dans un classeur,
  • les vĂȘtements dans une armoire.

Mais l’ordinateur, lui, ne peut pas "voir" ou "comprendre". Il doit appliquer une mĂ©thode claire, rĂ©pĂ©titive, automatisable.

👉 D’oĂč l’importance des algorithmes de tri.

đŸ§© Plusieurs familles de tris

Il existe beaucoup d’algorithmes de tri (tri rapide, tri Ă  bulles, tri fusion, tri tas
). Chacun a ses avantages et inconvĂ©nients (vitesse, simplicitĂ©, consommation mĂ©moire
).

Pour les élÚves de PremiÚre, on étudie surtout deux tris :

  1. le tri par sélection,
  2. le tri par insertion.

2. đŸ”· Le tri par sĂ©lection

Le tri par sĂ©lection (en anglais selection sort) est un des algorithmes de tri les plus simples Ă  comprendre. Il est souvent Ă©tudiĂ© en premier parce qu’il illustre trĂšs bien les concepts de parcours de liste, de comparaison, et de permutation.


🎯 IdĂ©e gĂ©nĂ©rale

Le principe est le suivant :

  1. On recherche le plus petit élément de la liste.
  2. On échange cet élément avec celui de la premiÚre position.
  3. On recommence sur la sous-liste restante (tous les éléments sauf le premier).
  4. On rĂ©pĂšte jusqu’à ce que tous les Ă©lĂ©ments soient rangĂ©s.

Autrement dit, Ă  chaque Ă©tape, on sĂ©lectionne (d’oĂč le nom) l’élĂ©ment le plus petit parmi ceux qui ne sont pas encore triĂ©s.


🧠 Pourquoi ce nom ?

L'algorithme sĂ©lectionne successivement les plus petits Ă©lĂ©ments pour les mettre au bon endroit. Il ne construit pas une liste triĂ©e en avançant : il place d’abord ce qui doit ĂȘtre au dĂ©but, puis ce qui doit suivre, etc.


🔍 Exemple dĂ©taillĂ© : trier la liste [7, 3, 5, 2]

On va suivre pas à pas ce que fait l’algorithme.

➀ Étape 1 : trouver le minimum de toute la liste

La liste est : [7, 3, 5, 2] Le plus petit élément est 2.

👉 On Ă©change 2 avec le premier Ă©lĂ©ment (7).

Nouvelle liste : [2, 3, 5, 7]

➀ Étape 2 : trier la sous-liste Ă  partir de la position 1

Sous-liste : [3, 5, 7] Le plus petit élément est 3, qui est déjà à sa place.

La liste ne change pas : [2, 3, 5, 7]

➀ Étape 3 : trier la sous-liste Ă  partir de la position 2

Sous-liste : [5, 7] Le plus petit est 5, déjà en position.

Rien ne change.

➀ Étape 4 : le dernier Ă©lĂ©ment

Le dernier élément est forcément le plus grand restant. Plus rien à faire.

👉 La liste est triĂ©e : [2, 3, 5, 7]


đŸ§© ReprĂ©sentation schĂ©matisĂ©e

[7, 3, 5, 2]
   ↓
(minimum = 2)
↳ Ă©change avec 7
[2, 3, 5, 7]
   ↓
(minimum = 3)
[pas d’échange]
[2, 3, 5, 7]
   ↓
(minimum = 5)
[pas d’échange]
[2, 3, 5, 7]

🔄 Comment fonctionne l’algorithme à chaque tour ?

Pour chaque position i dans la liste :

  1. on suppose que la plus petite valeur se trouve en position i ;
  2. on parcourt les positions qui suivent (i+1, i+2, 
) pour vérifier si un élément plus petit existe ;
  3. si on le trouve, on retient sa position ;
  4. Ă  la fin du parcours, on Ă©change l’élĂ©ment trouvĂ© avec celui de la position i.

👉 C’est un algorithme qui nĂ©cessite deux boucles :

  • une boucle extĂ©rieure qui fixe la position oĂč doit aller le prochain plus petit,
  • une boucle intĂ©rieure qui cherche le minimum.

📩 Avantages et inconvĂ©nients

✔ Avantages

  • TrĂšs simple Ă  comprendre et Ă  implĂ©menter.
  • RĂ©alise trĂšs peu d’échanges (au maximum n Ă©changes pour n Ă©lĂ©ments).

❌ InconvĂ©nients

  • Il faut parcourir toute la liste pour chaque position → lent si la liste est longue.
  • Ne s’adapte pas bien aux listes dĂ©jĂ  presque triĂ©es : il fera quand mĂȘme les mĂȘmes comparaisons.

3. đŸ”¶ Le tri par insertion (Version dĂ©veloppĂ©e)

Le tri par insertion (en anglais insertion sort) est un algorithme de tri trÚs intuitif, souvent expliqué en comparant son fonctionnement avec la maniÚre dont on trie des cartes à jouer dans sa main.


🎯 IdĂ©e gĂ©nĂ©rale

On considĂšre qu’une partie de la liste (au dĂ©but, juste le premier Ă©lĂ©ment) est dĂ©jĂ  triĂ©e.

Ensuite, pour chaque nouvel élément de la liste :

  1. On le compare avec les éléments déjà triés ;
  2. On le dĂ©place vers la gauche jusqu’à trouver sa juste place ;
  3. On l’insĂšre lĂ  oĂč il doit aller.

👉 De cette maniĂšre, la partie gauche de la liste est toujours triĂ©e, et elle grandit Ă  chaque Ă©tape.


🃏 Exemple concret : comme trier des cartes

Quand on reçoit des cartes dans un jeu :

  1. On commence avec une carte → c’est triĂ©.
  2. On prend la seconde → on la met avant ou aprùs selon sa valeur.
  3. On prend la troisiĂšme → on la glisse au bon endroit, mĂȘme s’il faut bouger les autres cartes.
  4. Et ainsi de suite.

Le tri par insertion fait exactement la mĂȘme chose, mais avec des nombres dans une liste.


🔍 Exemple dĂ©taillĂ© : trier la liste [7, 3, 5, 2]

On va construire progressivement une partie triée à gauche.


➀ Étape 0 : point de dĂ©part

On considÚre que [7] est déjà trié.


➀ Étape 1 : insĂ©rer 3

On compare 3 avec les éléments de la partie triée ([7]) :

  • 3 < 7 → on dĂ©place 7 vers la droite
  • On place 3 Ă  sa place

Résultat : [3, 7, 5, 2]


➀ Étape 2 : insĂ©rer 5

On compare 5 Ă  7 puis Ă  3 :

  • 5 < 7 → on dĂ©cale 7 Ă  droite
  • 5 > 3 → sa place est ici

Résultat : [3, 5, 7, 2]


➀ Étape 3 : insĂ©rer 2

On compare 2 Ă  7 → dĂ©placer 7 On compare 2 Ă  5 → dĂ©placer 5 On compare 2 Ă  3 → dĂ©placer 3 Puis on place 2 au dĂ©but.

Résultat final : [2, 3, 5, 7]


đŸ§© SchĂ©ma illustrĂ©

[7 | 3, 5, 2] → 3 s'insùre → [3, 7 | 5, 2]
[3, 7 | 5, 2] → 5 s'insùre → [3, 5, 7 | 2]
[3, 5, 7 | 2] → 2 s'insùre → [2, 3, 5, 7]

La partie à gauche de la barre (|) est toujours triée.


🔄 Le fonctionnement dĂ©taillĂ©

Pour chaque position i de la liste :

  1. On retient la valeur à insérer : valeur = liste[i]
  2. On parcourt les éléments à gauche de i en partant de i-1
  3. Tant que la valeur est plus petite, on décale les éléments vers la droite
  4. On place la valeur au bon endroit.

👉 Cet algorithme nĂ©cessite aussi deux boucles :

  • une boucle extĂ©rieure pour parcourir la liste,
  • une boucle intĂ©rieure pour dĂ©placer les Ă©lĂ©ments.

📩 Avantages et inconvĂ©nients

✔ Avantages

  • TrĂšs efficace quand la liste est dĂ©jĂ  presque triĂ©e.
  • Simple Ă  comprendre et trĂšs naturel.
  • Fonctionne "en ligne" : Ă  chaque Ă©lĂ©ment ajoutĂ©, la liste reste triĂ©e.

❌ InconvĂ©nients

  • Peut ĂȘtre lent si la liste est trĂšs dĂ©sordonnĂ©e.
  • NĂ©cessite parfois beaucoup de dĂ©placements d’élĂ©ments.
Accueil