Vous êtes sur la page 1sur 10

Département Génie Informatique

2ème Année «Années


LE LANGAGE C Préparatoires Intégrés»
2022/2023

q Pr. BAHASSINE Said


q Pr. CHERGUI Adil
q Pr. AZMI Mohamed
said.bahassine@ensam-casa.ma
Département Génie Informatique

LES ALGORITHMES DE TRI Partie 6


Objectifs de la séance :
• Étudier et programmer les algorithmes les plus communs de tri de
tableau

q Pr. BAHASSINE Said


q Pr. CHERGUI Adil
q Pr. AZMI Mohamed
ALGORITHME DE TRI
Définition
Les tableaux permettent de stocker plusieurs L'étude du tri est également intéressante en elle-même car il
éléments de même type au sein d’une seule s'agit sans doute du domaine de l'algorithmique qui a été le
entité. plus étudié et qui a conduit à des résultats remarquables sur
Lorsque le type de ces éléments possède un la construction d'algorithmes et l'étude de leur complexité.
ordre total, on peut donc les ranger en ordre Il existe plusieurs méthodes de tri qui se différencient par
croissant ou décroissant. leur complexité d’exécution et leur complexité de
compréhension pour le programmeur.
Trier un tableau c’est donc ranger les éléments
Dans ce chapitre nous allons étudié 3 différents algorithmes
d’un tableau en ordre croissant ou décroissant.
de tri de tableau :
L’algorithme qui permet de faire cette tâche • Le tri à bulle
automatiquement est un algorithme de tri. • Le tri par sélection
Les algorithmes de tri ont une grande • Le tri par insertion
importance pratique. Ils sont fondamentaux dans Ces algorithmes sont considérés parmi d’autres comme :
tous les domaines en informatique là ou il y a du • Les plus intuitifs
traitement de l’information où l'on tri de • Les plus faciles à programmer
manière quasi-systématique des données avant • Les plus inefficaces (du point de vue temps d’exécution).
de les utiliser.
PROGRAMMATION 3
EN LANGAGEC
ALGORITHME DE TRI
Autres algorithmes
Et donc ils existent bien d’autres que nous Dans ce qui va suivre nous allons étudié le principe de
n’allons pas étudier malheureusement dans ce chaque l’algorithme, ces étapes, un exemple, et enfin son
module (à se faire comprendre par votre vaste code en C. Les codes sont donnés sous forme de fonctions
initiative …) qui admettent comme paramètres : le tableau, le nombre
§ Tri shaker ou bidirectionnel (Cocktail Sort) des éléments. Pour les tester il faut les mettre dans un
programme principale qui vas les appelées.
§ Tri à peigne (Comb Sort)
Après l’étude de la partie destinée à la complexité, nous
§ Tri de Shell (Shell sort) allons revenir sur ces tris pour discuter leur efficacité.
§ Tri rapide (Quicksort)
§ Tri de Batcher (Batcher odd–even mergesort /
Bitonic Sort)

PROGRAMMATION 4
EN LANGAGEC
ALGORITHME DE TRI: TRI À BULLE
Principe Les étapes
Le tri à bulles est un algorithme de tri classique. • Parcourir le tableau de n éléments depuis le
Son principe est simple, et il est très facile à début jusqu’à la fin
implémenter. • Faire un échange chaque fois que 2 éléments
consécutifs ne sont pas dans le bon ordre.
On considère un tableau de nombres T, de taille
• Répéter ces opérations jusqu’à ce que le tableau
n. L'algorithme parcourt le tableau, et dès que
soit trié
deux éléments consécutifs ne sont pas ordonnés,
les échange. Après un premier passage, on voit
que le plus grand élément se situe bien en fin de
tableau. On peut donc recommencer un tel
passage, en s'arrêtant à l'avant-dernier élément,
et ainsi de suite.
Au i-ème passage on fait remonter le i-ème plus
grand élément du tableau à sa position
définitive, un peu à la manière de bulles qu'on
ferait remonter à la surface d'un liquide, d'où le
nom d'algorithme de tri à bulles

PROGRAMMATION 5
EN LANGAGEC
ALGORITHME DE TRI : TRI À BULLE
Le Codage en C Code en C
Le tri à bulles est un algorithme de tri classique.
Son principe est simple, et il est très facile à
implémenter.
On considère un tableau de nombres T, de taille
n. L'algorithme parcourt le tableau, et dès que
deux éléments consécutifs ne sont pas ordonnés,
les échange. Après un premier passage, on voit
que le plus grand élément se situe bien en fin de
tableau. On peut donc recommencer un tel
passage, en s'arrêtant à l'avant-dernier élément,
et ainsi de suite.
Au i-ème passage on fait remonter le i-ème plus
grand élément du tableau à sa position
définitive, un peu à la manière de bulles qu'on
ferait remonter à la surface d'un liquide, d'où le
nom d'algorithme de tri à bulles

PROGRAMMATION 6
EN LANGAGEC
ALGORITHME DE TRI :TRI PAR SÉLECTION
Principe Les étapes
Le principe du tri par sélection/échange (ou tri § rechercher le plus petit élément du tableau, et
par extraction) est d'aller chercher le plus petit l'échanger avec l'élément d'indice 0 ;
élément du vecteur pour le mettre en premier, § rechercher le second plus petit élément du
puis de repartir du second élément et d'aller tableau, et l'échanger avec l'élément d'indice 1
chercher le plus petit élément du vecteur pour le …
mettre en second, etc... § Répéter ces opérations n fois

PROGRAMMATION 7
EN LANGAGEC
ALGORITHME DE TRI : TRI PAR SÉLECTION
Exemple Code en C

PROGRAMMATION 8
EN LANGAGEC
ALGORITHME DE TRI : TRI PAR INSERTION
Principe Les étapes

Le tri par insertion est également un algorithme § Considérer le tableau comme deux partie, la
de tri classique, simple à implémenter et intuitif, premier partie considérée comme triée, la
puisqu'il est celui que les joueurs de cartes deuxième comme non triée.
utilisent naturellement pour trier leurs cartes. § Prendre le premier élément de la deuxième
partie non triée et l’inséré dans la première
On considère un tableau de nombres T de taille partie dans l’ordre (l’insertion nécessite un
n qu'il s'agit de trier par ordre croissant. décalage des éléments).
Le principe de l'algorithme est le suivant. On
§ Répéter ces opérations n fois
parcourt le tableau du début à la fin (i = 1 à N −
1), et à l'étape i, on considère que les éléments
de 0 à i − 1 du tableau sont déjà triés. On va
alors placer le i-ème élément à sa bonne place
parmi les éléments précédents du tableau, en le
faisant « redescendre » jusqu'à atteindre un
élément qui lui est inférieur.

PROGRAMMATION 9
EN LANGAGEC
ALGORITHME DE TRI : TRI PAR INSERTION
Exemple Code en C

PROGRAMMATION 10
EN LANGAGEC

Vous aimerez peut-être aussi