Snineh
Mohamed
Introduction
Définitions
Analyse et résolution d’un problème
Composants d’un algorithme
◦ Données
◦ Instructions entrées/sorties
◦ Affectation
◦ Structure séquentielle
◦ Structures conditionnelles ou alternatives
◦ Structures répétitives
Sous-algorithmes
Récursivité
Algorithmes de tri
2
INTRODUCTION
Snineh
Mohamed
Les algorithmes.
Les langages machines.
Les langages évolués : pascal, C, C++, Basic, Java,
Python…
Un compilateur ou interpréteur est nécessaire pour traduire
un programme écrit en un langage évolué en langage
machine.
INTRODUCTION
3
Snineh
Mohamed
Algorithme :
◦ mot dérivé du nom du mathématicien « AL KHWARIZMI » qui a
vécu au 9ème siècle, était membre d’un académie des sciences à
Bagdad .
◦ Entrée : instance du problème.
◦ Sortie : résultat(s)
Entrée Sortie
DÉFINITIONS
4
Snineh
Mohamed
Définition 1:
◦ Un algorithme représente une séquence d’instructions (Actions), logiquement
ordonnées, qui permet de résoudre un problème donné.
◦ Un algorithme est lié à un problème.
Algorithme
d’actions Résoudre Problème à Résoudre
DÉFINITIONS
5
Snineh
Mohamed
Définition 2:
◦ Séquence d’étapes de calcul qui transforment les entrées en sortie. La
sortie représente la solution d’un problème donné.
◦ Étude de la résolution de problèmes par la mise en œuvre de suites
d'opérations élémentaires selon un processus défini aboutissant à une
solution.
Problème
Algorithme
Données + d’actions
Données
Modélise
6
DÉFINITIONS
Snineh
Mohamed
DÉFINITIONS
ALGORITHMIQUE :
L’algorithmique est la science des algorithmes.
L’algorithmique s’intéresse à l’art de construire des algorithmes ainsi
qu’à caractériser leur validité, leur robustesse, leur réutilisabilité, leur
complexité ou leur efficacité.
VALIDITÉ D’UN ALGORITHME
La validité d’un algorithme est son aptitude à réaliser exactement la
tâche pour laquelle il a été conçu.
ROBUSTESSE D’UN ALGORITHME
La robustesse d’un algorithme est son aptitude à se protéger de
conditions anormales d’utilisation.
7
Snineh
Mohamed
DÉFINITIONS
RÉUTILISABILITÉ D’UN ALGORITHME
La réutilisabilité d’un algorithme est son aptitude à être réutilisé pour
résoudre des tâches équivalentes à celle pour laquelle il a été conçu.
COMPLEXITÉ D’UN ALGORITHME
La complexité d’un algorithme est le nombre d’instructions
élémentaires à exécuter pour réaliser la tâche pour laquelle il a été
conçu.
EFFICACITÉ D’UN ALGORITHME
L’efficacité d’un algorithme est son aptitude à utiliser de manière
optimale les ressources du matériel qui l’exécute.
8
Snineh
Mohamed
ANALYSE ET RÉSOLUTION D’UN PROBLÈME
Analyser et étudier le problème à résoudre
Spécifier le modèle de Résolution :
données et les formules mathématiques
Écrire l’algorithme
Traduire l’algorithme à un programme
Exécuter le programme par un ordinateur
afin d’obtenir des résultats
Problème
Modèle
Algorithme
Programme
Résultats
9
Snineh
Mohamed
Un algorithme peut être représenté :
◦ Langage humain.
◦ Le pseudo-code:
Le pseudo-code est une représentation textuelle avec une série
de conventions ressemblant à un langage de programmation
(sans les problèmes de syntaxe)
plus pratique pour écrire un algorithme.
représentation largement utilisée.
◦ Langage informatique.
REPRÉSENTATION D’UN ALGORITHME
10
Snineh
Mohamed
Symbole Instruction
DEBUT et FIN
LIRE et ECRIRE
TRAITEMENT ou
CALCUL
DECISON ou TEST
RENVOIE
◦ Organigramme :
Un organigramme est la représentation graphique d'un
algorithme. Les instructions sont représentées par des symboles
graphiques normalisés qui sont:
REPRÉSENTATION D’UN ALGORITHME
11
Snineh
Mohamed
VUE GLOBALE D’UN ALGORITHME
Entrée (Inputs)
Sortie (Outputs)
Algorithme
Données + d’instruction
Traitements
(instructions)
Instructions
des entrées
Données
intermédiaires
Instructions
des sorties
12
Snineh
Mohamed
Un algorithme est composé d'un certains nombre d'instructions qui
manipulent des données :
- Données d'un algorithme :
◦ Une donnée représente une information liée à un élément du
problème traité par l’algorithme. Elle est caractérisée par 3 attributs:
Identificateur
Valeur
Type
COMPOSANTS D'UN ALGORITHME
13
Snineh
Mohamed
COMPOSANTS D'UN ALGORITHME
• C’est un objet content une valeur
fixe.
• C’est un objet content une valeur
pouvant être modifiée.
• Dans un programme, ça représente
une zone mémoire dans la RAM.
Données
Variable
Constante
- Données : Variables et constantes:
14
Snineh
Mohamed
COMPOSANTS D'UN ALGORITHME
- Données : Identificateur
Chaque donnée (Variable ou constante) manipulée par un
algorithme est désignées par un nom unique : IDENTIFICATEUR.
Identificateur : c’est une chaîne de caractères alphanumérique
(contenant uniquement des caractères alphabétiques [a-z, A-Z] et
numériques [0-9]) en plus du caractère « _ » (Trait souligné) et qui
ne commence pas par un caractère numérique.
15
Snineh
Mohamed
- Données : Entrées et Sorties
Données
• Les données que
l’utilisateur doit fournir à
l’algorithme.
Entrées (Inputs)
• Les données que l’algorithme doit afficher à
l’utilisateur. C’est les résultats de l’algorithme
(Solution du Problème)
Sortie(Outputs)
• Données utilisées par l’algorithme
pour le traitement lié au problème.
Données Intermédiaires
COMPOSANTS D'UN ALGORITHME
16
Snineh
Mohamed
Type date : (jour/mois/année)
Type booléen
◦ Le type booléen stocke uniquement les valeurs logiques VRAI et FAUX.
◦ On peut représenter ces notions abstraites de VRAI et de FAUX par tout ce
qu'on veut : de l'anglais (TRUE et FALSE) ou des nombres (0 et 1).
Chaînes de caractères
◦ Les caractères sont notés entre apostrophes ou guillemets.
◦ Il contient tous les caractères utilisables (lettres, chiffres, ponctuation).
◦ Le type chaîne permet de décrire des objets.
◦ Les langages de programmation manipulent les chaînes de caractères :
Concaténation
Sous-chaînes
…
18
TYPES DE DONNÉES
Snineh
Mohamed
- Les opérateurs arithmétiques :
Opérateur Fonction Exemple
+ Addition X+Y
- Soustraction X-Y
* Multiplication X*Y
/ Division X/Y
^ Puissance 2^3
Mod Reste division 17 mod 5 (=2)
19
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
- Les opérateurs relationnels (de comparaison) :
Opérateur signification
= Egal
<> ou Différent
< Strictement inférieur
> Strictement supérieur
<= Inférieur ou égal
>= Supérieur ou égal
- Les opérateurs relationnels (de comparaison) :
Opérateur signification
NON Non logique
OU Ou inclusif
ET Et logique
20
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
LES INSTRUCTIONS
Définition
Les actions élémentaires qui composent un algorithme sont
appelées Instructions, car elles représentent des ordres à
exécuter dans l'algorithme.
Instruction d'entrée : Lire
L'instruction Lire permet d'introduire une donnée
Instruction de Sortie: Ecrire
L'instruction Ecrire permet de restituer (sortir) une donnée
EXEMPLES :
◦ Prix Lire ("Donner le prix: ")
◦ Ecrire ("Net à payer :" , Net)
21
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
Affectation:
Une affectation est l'opération qui permet de ranger la valeur d'une
expression dans une variable.
Dans un algorithme l'affectation est symbolisée par: ←
Exemples:
X←20 : La valeur 20 est affectée à la variable X
S←n1+n2 : La somme (n1+n2) est affectée à la variable S
X←Y : La valeur de la variable Y est affectée à la variable X
Exercice :
Ecrire un algorithme permettant de saisir 2 nombres et de permuter
leurs valeurs.
22
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
Ordre de priorité des opérateurs
Pour les opérateurs arithmétiques, l'ordre de priorité est le suivant
(du plus prioritaire au moins prioritaire) :
◦ ^ : (élévation à la puissance)
◦ * , / (multiplication, division)
◦ mod (modulo)
◦ + , - (addition, soustraction)
En cas de besoin on utilise les parenthèses pour indiquer les
opérations à effectuer en priorité.
23
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
STRUCTURES DE CONTRÔLE
Un algorithme décrit une suite d'instructions dont l'exécution ne se
fait pas toujours dans l'ordre de leur écriture. Il peut y avoir dans
certains cas des sauts de blocs d'instructions. Ces sauts sont
contrôlés par une structure appelée structure de contrôle.
Un algorithme peut avoir trois structures:
◦ Structure séquentielle
◦ Structures conditionnelles ou alternatives
◦ Structure répétitive
24
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
STRUCTURE SÉQUENTIELLE
On dit qu'un algorithme a une structure séquentielle lorsque les
instructions s'exécutent d'une manière linéaire une après une du
début jusqu'à la fin.
Exemple
Variables NT1, NT2, NT3, MOY : Réel;
Début
LIRE (NT1);
LIRE (NT2);
LIRE (NT3);
MOY← (NT1+ NT2+ NT3)/3;
ECRIRE (MOY);
Fin
25
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
Structures conditionnelles
Dans un algorithme ayant une structure alternative les instructions
s'exécutent selon la réalisation d'une condition ou non.
La condition est une expression logique, elle peut être simple ou composée.
Instruction Si … Alors … Sinon …Finsi
Elle exprime le choix entre deux séquences d'actions en fonction de la valeur
de la condition
Syntaxes :
Si condition alors
Séquence1
Finsi
Si Condition Alors
Séquence1
Sinon
Séquence2
Finsi
Si Condition Alors
Séquence1
SinonSi Condition alors
Séquence2
SinonSi Condition alors
Séquence3
…
Sinon
Séquence_n
Finsi
26
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
Condition composée
◦ Une condition composée est une condition formée de plusieurs conditions simples
reliées par des opérateurs logiques: ET, OU, OU exclusif (XOR) et NON
Exemples
x compris entre 2 et 6 : (x > 2) ET (x < 6)
n divisible par 3 ou par 2 : (n mod 3=0) OU (n mod 2=0)
deux valeurs et deux seulement sont identiques parmi a, b et c :
(a=b) XOR (a=c) XOR (b=c)
◦ L'évaluation d'une condition composée se fait selon des règles présentées
généralement dans ce qu'on appelle tables de vérité
27
C1 C2 C1 ET C2 C1 C2 C1 OU C2 C1 C2 C1 XOR C2
V V V V V V V V F
V F F V F V V F V
F V F F V V F V V
F F F F F F F F F
C1 NON C1
V F
F V
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
Structures alternatives imbriquées
Exemple :
Si condition_1 alors
Si condition_2 alors
instructionsA
Sinon
instructionsB
Finsi
Sinon
Si condition_3 alors
instructionsC
Finsi
Finsi
28
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
Structure répétitive ou itérative (boucles)
◦ La structure répétitive permet de répéter une action ou une
séquence d’actions tant qu’une condition est vraie.
◦ Une structure répétitive est aussi appelée boucle
La boucle tantQue …faire
Exemple
Ecrire un algorithme qui demande à l’utilisateur une note comprise
entre 0 et 20 jusqu’à ce que la réponse convienne.
Tant que Condition(s) faire
Instruction(s)
Fin Tantque
29
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
Structure répétitive
La boucle Répéter … Jusqu’à
Exemple
Ecrire un algorithme qui permet de vérifier le mot de passe saisi au
clavier. L’utilisateur a droit à trois tentatives.
Répéter
Instruction(s)
Jusqu’á Condition(s)
30
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
Notion du compteur
Initialisation d’un compteur :
Compteur Vi
Incrémentation d’un compteur
Compteur Compteur + incrément
Décrémentation d’un compteur
Compteur Compteur - incrément
Exemple :
Ecrire un algorithme qui calcule pour un nombre entier N (N>=0)
saisi au clavier, la somme : S=1+2+3+4+5+6+…..+N
31
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
La boucle Pour ……FinPour
Cette instruction permet la répétition d'un traitement un
nombre déterminé de fois. Le nombre de fois est contrôlé par
un compteur allant de la valeur initiale à la valeur finale. La
progression se fait dans l’ordre croissant ou décroissant.
Exemple
Ecrire un algorithme qui affiche les dix premiers nombres pairs.
POUR Compteur Vi A Vf [PAS DE Incrément] FAIRE
Instruction(s);
FinPour
32
COMPOSANTS D'UN ALGORITHME
Snineh
Mohamed
Imbrication des boucles:
33
COMPOSANTS D'UN ALGORITHME
Pour | Répéter | Tant que | …
FinPour | Jusqu’à Condition(s)| FinTantque | …
Snineh
Mohamed
Tableaux à une seule dimension :
◦ Structure de données qui permet de regrouper un ensemble de valeurs de
même type sous un même nom de variable en les différenciant par un
indice ou un index.
Syntaxes :
◦ nom_tableau : type_des_éléments [borne_inférieure .. borne_supérieure]
◦ nom_tableau : type_des_éléments [Taille_Maximale]
◦ La première case commence souvent par l’indice : 0
◦ Par exemple, pour un tableau t de 5 entiers , on pourra écrire :
t : entier [0..4] ou bien t : entier [5]
34
TYPES DE DONNÉES : TABLEAUX
10 5 8 4 7
0 1 2 3 4
valeurs
indices
t
Snineh
Mohamed
Accès aux éléments du tableau t :
◦ Pour accéder à un élément du tableau, il suffit de préciser entre
crochets l’indice de la case contenant cet élément : t[2]
Affectation d’un élément du tableau t à une variable:
◦ A ← t[3]
Modification d’un élément du tableau t :
◦ t[3] ← 99
Parcours des éléments d’un tableau :
◦ Les algorithmes utilisent des itérations permettant de faire un
parcours complet ou partiel des différents éléments du tableau.
35
TYPES DE DONNÉES : TABLEAUX
Snineh
Mohamed
Tableaux à deux dimensions :
Syntaxes :
◦ nom_tableau : type_des_éléments [0..nb_lignes-1, 0 .. nb_colonnes-1]
◦ Par exemple : Un tableau t de 3 lignes et 4 colonnes.
t : entier [0..2,0..3]
36
TYPES DE DONNÉES : TABLEAUX
0 1 2 3
0 18 89 9 2
1 67 77 85 6
2 55 66 88 9
Snineh
Mohamed
Accès aux éléments d’un tableau à 2D :
◦ Nom_tableau[indice_ligne,indice_colonne ]
◦ t[1,2]
Affectation d’un élément du tableau t à une variable:
◦ a ← t[1,2]
Modification d’un élément du tableau t :
◦ t[1,2] ← 100
Parcours des éléments d’un tableau à 2D :
◦ Les algorithmes utilisent l’imbrication des boucles pour
parcourir le tableau à 2D.
37
TYPES DE DONNÉES : TABLEAUX
Snineh
Mohamed
Utilité:
◦ Découper l’algorithme en sous-algorithmes pour les raisons
suivantes:
Structuration;
Réutilisation et partage;
Pas de duplication du code
Offert une meilleure lisibilité car le lecteur peut comprendre
ce que fait un sous-algorithme, uniquement à la lecture de
son nom.
Construction des bibliothèques des sous-algorithmes.
…
38
SOUS-ALGORITHMES
Snineh
Mohamed
Définition :
◦ Un sous-algorithme est un bloc d’actions. Souvent il est déclaré
dans la partie entête de l’algorithme principal puis appelé dans
le corps de l’algorithme.
Syntaxe :
◦ Le sous-algorithme se compose :
nom du sous-algorithme;
liste éventuelle des paramètres et de leur type;
éventuellement le type de la valeur qu'elle renvoie
les déclarations locales (constantes ou variables);
les instructions qui calculent le résultat à retourner;
éventuellement au moins une instruction retourner qui
renvoie la valeur résultat.
39
SOUS-ALGORITHMES
Snineh
Mohamed
Variables globales et variables locales:
◦ La portée d’une variable est l’ensemble des sous-algorithme où cette
variable est connue.
◦ Une variable définie au niveau du programme principal est appelée
variable globale.
◦ Une variable définie au sein d’un sous-algorithme est appelée variable
locale.
◦ Lorsque le nom d’une variable locale est identique à une variable
globale, la variable globale est localement masquée.
41
SOUS-ALGORITHMES
Snineh
Mohamed
Types des sous-algorithmes:
◦ Un sous-algorithme peut se présenter sous forme de fonction ou de
procédure.
◦ Une fonction est un sous-algorithme qui, à partir de donnée(s), calcul
et rend à l’algorithme un et un seul résultat.
◦ Une procédure est un sous-algorithme qui affiche le(s) résultat(s)
demandé(s).
42
SOUS-ALGORITHMES
Snineh
Mohamed
Types des sous-algorithmes:
◦ Un sous-algorithme peut se présenter sous forme de fonction ou de
procédure.
Fonctions:
◦ Une fonction est un sous-algorithme qui, à partir de données, calcul et
retourne à l’algorithme un et un seul résultat.
Fonctions Prédéfinies:
◦ Textes : Majuscule, Minuscule, Gauche, Droite, Sous-Chaine, Longueur,
Concact, …
◦ Date : Année, Mois, Jour,….
◦ Math : Sin, Cos, Ent, Sqrt, Abs, Alea, Mod, …
◦ …
43
SOUS-ALGORITHMES
Snineh
Mohamed
Fonctions définies par l’utilisateur :
◦ Une fonction est un sous-algorithme qui, à partir de données, calcul et
retourne à l’algorithme un et un seul résultat.
Déclaration d’une Fonction:
44
SOUS-ALGORITHMES
Fonction nom_fonction ([par1, par2, …]) : type de retour du résultat
Variables
nom_var : Typevar
Début
…
Actions
…
Retourner Resultat
Fin
Corps de la fonction
Variables locales
Snineh
Mohamed
Procédures:
◦ Une procédure est un bloc d’actions nommé et déclaré dans l’entête
de l’algorithme et appelé dans son corps.
Déclaration d’une procédure :
45
SOUS-ALGORITHMES
Procedure nom_procedure ([par1, par2, …]) :
Variables
nom_var : Typevar
Début
…
Actions
…
Fin
Corps de la procédure
Variables locales
Snineh
Mohamed
Appel d’une fonction :
◦ Par affectation : F Factorielle(5)
◦ Dans une instruction d’écriture : Ecrire (Factorielle(5))
◦ Dans l’instruction Si … Alors
Appel d’une procédure:
◦ L’appel d’une procédure s’effectue en spécifiant son nom et
éventuellement ses paramètres
Appel des sous-algorithmes:
◦ Une procédure ou une fonction peut appeler d’autres sous-
algorithmes.
46
SOUS-ALGORITHMES
Snineh
Mohamed
Nature des paramètres :
◦ … nom_sous_algorithme (valeur | reference p1: type_donnée, …) …
◦ Le mot clé valeur indique une modalité de passage des paramètres
Exemple : Passage par valeur
◦ fonction max_value(valeur p1: reel, valeur p2: reel) : reel …
◦ Appel : Ecrire(max_value(x, y))
◦ L’expression max_value(x,y) est évaluée de la façon suivante:
Les valeurs de x et y sont calculées
Les paramètres p1 et p2 de max_value sont initialisés en utilisant ces valeurs.
Le corps de la fonction max_value est exécuté utilisant p1 et p2 comme des
variables.
Le résultat de la fonction est enfin retourné
Quelques soient les opérations effectuées sur p1 et p2 dans le corps de
max_value, les valeurs des paramètres actuels x et y restent inchangés.
47
SOUS-ALGORITHMES
Snineh
Mohamed
Exemple : Passage par référence
procédure echange (reference a: entier, reference b: entier)
variable p: un entier
debut
p a
a b
b p
fin
◦ L’expression echange (x,y) est évaluée de la façon suivante:
on ne fait pas une copie des valeurs de x et y dans a et b
au contraire, on transforme a et b en « alias » de x et y en le faisant pointer
sur les mêmes cases mémoire de x et y.
toute opération effectuée sur les paramètres a et b dans le corps de la
procédure ou fonction et aussi effectué sur les arguments x et y.
48
SOUS-ALGORITHMES
Snineh
Mohamed
Définition et principe:
◦ En informatique la récursivité consiste à remplacer une boucle par un appel à la
fonction elle-même.
◦ Exemple : N ! = 1 x 2 x … x (N-2) x (N-1) x N
◦ On commence par le nombre jusqu’à 1 pour pouvoir calculer la factorielle.
◦ Les différents appels récursifs sont empilés en mémoire jusqu’à ce que la
condition d’arrêt soit validée. Ils sont ensuite dépilés jusqu’à l’appel initial.
49
RÉCURSIVITÉ
Variables N : Entier, Fact :
Entier
Debut
Fact ←1
Pour i←1 à N
Fact ← Fact * i
i suivant
Ecrire (Fact)
Fin
Fonction Fact (N : Entier) : Entier
Debut
Si N = 1 Alors
Retourner 1
Sinon
Retourner N * Fact (N-1)
FinSi
Fin
Snineh
Mohamed
Les types d’algorithmes de tri :
◦ Les algorithmes itératifs
◦ Les algorithmes récursifs, basés sur le paradigme « diviser pour
régner », dans lesquels le tri d’une liste s’effectuera en la divisant
plusieurs fois par deux jusqu’à obtention de sous-listes ne comportant
qu’une seule valeur.
51
ALGORITHMES DE TRI
Snineh
Mohamed
52
ALGORITHMES DE TRI
Les algorithmes itératifs :
◦ Tri par sélection
Le tri par sélection consiste dans un premier temps à mettre à la première place
le plus petit élément de la liste, puis à la seconde place le deuxième plus petit
élément …
Snineh
Mohamed
54
ALGORITHMES DE TRI
Les algorithmes itératifs :
◦ Tri à bulles:
Le tri à bulles consiste à parcourir toute la liste en comparant chaque élément avec son
successeur, puis en les remettant dans l’ordre si nécessaire. Puis recommencer si besoin est.
Si lors du parcours de la liste aucune permutation n’a pas été effectuée l’algorithme s’arrête.
Snineh
Mohamed
Les algorithmes itératifs :
◦ Tri par insertion
Le tri par insertion consiste à insérer les éléments un par un en s'assurant
que lorsque l'on rajoute un nouvel élément, les éléments déjà insérés
restent triés.
56
ALGORITHMES DE TRI
Snineh
Mohamed
Tri par insertion : Exemple
57
ALGORITHMES DE TRI
12 5 2 7
12 2 7
12 2 7
5 12 2 7
5 12 7
5 12 7
2 5 12 7
2 5 12
2 5 12
2 5 7 12
RETIRER LE 2ÈME ELT
DÉCALER LES ELTS
INSÉRER LE 2ÈME ELT
RETIRER LE 3ÈME ELT
DÉCALER LES ELTS
INSÉRER LE 3ÈME ELT
RETIRER LE 4ÈME ELT
DÉCALER LES ELTS
INSÉRER LE 4ÈME ELT
Snineh
Mohamed
Les algorithmes récursifs:
◦ Ils utilisent le paradigme « diviser pour régner ».
◦ Tri par fusion
Le tri par fusion consiste à trier récursivement les deux moitiés de la liste,
puis à fusionner ces deux sous-listes triées en une seule. La condition
d’arrêt à la récursivité sera l’obtention d'une liste à un seul élément, car
une telle liste est déjà triée.
Description de l’algorithme :
Diviser la liste en deux sous-listes en la "coupant" par la moitié.
Trier récursivement chacune de ces deux sous-listes. Arrêter la récursivité
lorsque les listes n'ont plus qu'un seul élément.
Fusionner les deux sous-listes triées en une seule.
58
ALGORITHMES DE TRI
Snineh
Mohamed
Tri par Fusion :
59
ALGORITHMES DE TRI
10 4 5 7
10 4
10 4
5 7
7
5
4 5 10
7
4 10 7
5
Snineh
Mohamed
Les algorithmes récursifs:
◦ Tri rapide
Le tri rapide consiste à positionner un par un par les éléments à leur place
définitive en ne laissant à leur gauche que des éléments plus petits et à
leur droite que des éléments plus grands. Les deux sous-listes obtenues
par ce positionnement sont ensuite traitées de la même façon par
récursivité. La condition d’arrêt à la récursivité sera l’obtention d'une liste
à un seul élément, car cet unique élément est nécessairement au "bon"
endroit.
60
ALGORITHMES DE TRI
Snineh
Mohamed
2 3 5 7 12
61
ALGORITHMES DE TRI
1ère itération
2ème itération
3ème itération
12 5 2 7 3
2 5 12 7 3
2 5 12 7 3
2 3 12 7 5
2 3 12 7 5
4ème itération 2 3 5 7 12
Les algorithmes récursifs:
◦ Tri rapide
Le tri rapide consiste à positionner un par un par les éléments à leur place définitive
en ne laissant à leur gauche que des éléments plus petits et à leur droite que des
éléments plus grands. Les deux sous-listes obtenues par ce positionnement sont
ensuite traitées de la même façon par récursivité. La condition d’arrêt à la récursivité
sera l’obtention d'une liste à un seul élément, car cet unique élément est
nécessairement au "bon" endroit.