0% ont trouvé ce document utile (0 vote)
11 vues13 pages

Algorithme Tri

Le document présente différents algorithmes de tri, notamment le tri à bulles, le tri par sélection, le tri par insertion et le tri par dénombrement. Chaque méthode est expliquée avec ses principes de fonctionnement et des exercices d'implémentation en Python. Le document aborde également les différences entre les algorithmes de tri par comparaison et ceux utilisant des informations supplémentaires sur les éléments à trier.

Transféré par

a.ouardi06
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues13 pages

Algorithme Tri

Le document présente différents algorithmes de tri, notamment le tri à bulles, le tri par sélection, le tri par insertion et le tri par dénombrement. Chaque méthode est expliquée avec ses principes de fonctionnement et des exercices d'implémentation en Python. Le document aborde également les différences entre les algorithmes de tri par comparaison et ceux utilisant des informations supplémentaires sur les éléments à trier.

Transféré par

a.ouardi06
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les algorithmes de tris

Tri par comparaison

CPGE Moulay Youssef


Rabat

MPSI

2024 / 2025

0 / 12
Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Plan

1 Introduction

2 Tri à bulles

3 Tri par sélection

4 Tri par insertion

5 Tri par dénombrement

1 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Introduction

Nous avons vu la structure de données des listes, qui peut contenir plusieurs valeurs,
éventuellement de types différents.
Parmi les traitement qu’on peut faire sur un ensemble de données est de les trier
selon un ordre prédéfini.
On s’intéresse dans ce cours de trier un ensemble de données ( en général listes de
nombres réels).
Quels sont les types de tri qui existent ? Quelles différences entre eux ?
Quelles sont les applications principales des méthodes de tris ?

2 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Problème de tri
Souvent, on s’intéresse aux algorithmes de tris qui procèdent par comparaison entre les
éléments d’un tableau (on peut voir d’autres).
Le problème est donc de prendre en entrée un tableau t = [a0 , a1 , .., an−1 ] d’éléments d’un
ensemble E muni d’une relation d’ordre ≤. Et de donner en sortie le même tableau trié.
Remarque :
Les méthodes de tris peuvent aussi différer suivant que la structure de donnée à trier
soit mutable ou pas : dans le cas d’une structure mutable, on cherchera à trier les
éléments en place, c’est à dire sans coût spatial supplémentaire.
Il existe des algorithmes qui n’utilisent pas de comparaison entre les éléments, mais
se base sur une information supplémentaire dont on dispose sur les éléments à trier
(ex : Tri par base, Tri par comptage, ..).
On dit qu’un algorithme de tri est stable lorsqu’il préserve l’ordre des indices entre
deux éléments équivalents.
3 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Tri à bulles
Le tri à bulles est parmi les méthodes de tri les plus naïves et simples, son principe est de
comparer chaque deux valeurs adjacentes et d’inverser leurs positions si elles sont mal
placées.
Exemple :

4 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

La technique est de faire remonter (ou descendre) les plus petit éléments en tête du
tableau (comme des bulles).
Voici une version du tri à bulles.

Exercice :
1 Donner le nombre de comparaisons nécessaires pour cet algorithme.
2 Implémenter le Tri à bulles en Python.
5 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Tri par sélection

Le principe de ce tri est de rechercher le plus grand élément(ou le plus petit), le placer en
fin de tableau (ou en début), recommencer avec le second plus grand (ou le second plus
petit), le placer en avant dernière position (ou en seconde position) et ainsi de suite
jusqu’à avoir parcouru la totalité du tableau.

6 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Tri par sélection


Exemple :

Exercice :
1 Donner le nombre de comparaisons nécessaires pour cet algorithme.
2 Implémenter le Tri par sélection en Python.
7 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Tri par insertion

C’est le tri souvent utilisé naturellement pour trier des cartes à jouer : l’objectif d’une
étape est d’insérer le i-ème élément à sa place parmi ceux qui précèdent. Il faut pour cela
trouver où l’élément doit être inséré en le comparant aux autres, puis décaler les éléments
afin de pouvoir l’insérer.

8 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Tri par insertion


Exemple :

Exercice :
1 Donner le nombre de comparaisons nécessaires pour cet algorithme.
2 Implémenter le Tri par insertion en Python. 9 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Tri par dénombrement

Dans les trois algorithmes de tri vus précédemment, la technique principale est toujours
de comparer les éléments du tableau plusieurs fois jusqu’à avoir le tableau trié. Ces
algorithmes resteront valables pour n’importe quel données numériques (On a pas
forcément une information sur les valeurs des données du tableau).
Il existent d’autres méthodes de tri qui utilisent des informations préalables sur les
valeurs des éléments du tableau.
Par exemple, l’algorithme de tri par dénombrement - ou par comptage - (counting sort).
Cet algorithme est applicable lorsque les éléments à trier ne peuvent prendre qu’un
nombre fini de valeurs dans un intervalle connue au départ.

10 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Tri par dénombrement

Le principe est le suivant :


Considérons le cas d’un tableau t de longueur n dont les valeurs sont prises dans
l’intervalle entier [|0, k − 1|].
En un parcours du tableau t il est possible de dénombrer le nombre d’apparitions de
chacune des k valeurs possibles.
Chaque valeur de l’intervalle [|0, k − 1|] est ensuite rangée dans le tableau t autant de
fois que nécessaire.
Cette technique de tri est Applicable quand :
Les éléments à trier ne peuvent prendre qu’un nombre fini de valeurs.
La différence k entre la valeur maximale et la valeur minimale est proche du nombre n
des valeur à trier.

11 / 12

Les algorithmes de tris


Introduction Tri à bulles Tri par sélection Tri par insertion Tri par dénombrement

Tri par dénombrement


Exemple :
Trier la liste : A = [5, 1, 3, 4, 3, 1, 4, 5, 0, 1]
Les nombres appartiennent à l’intervalle [0, 5]. On crée un tableau T contenant 6
nombres :
T = [0, 0, 0, 0, 0, 0]
On parcoure la liste A en mettant dans T [i] le nombre d’occurrences de i pour i ∈ [0, 5]
T = [1, 3, 0, 2, 2, 2]
Pour i dans [0, 5], On affiche chaque i , T [i] fois.
[0, 1, 1, 1, 3, 3, 4, 4, 5, 5]
Exercice :
1 Donner le nombre de comparaisons nécessaires pour cet algorithme.
2 Implémenter le Tri par dénombrement en Python.
12 / 12

Les algorithmes de tris

Vous aimerez peut-être aussi