Vous êtes sur la page 1sur 20

Algorithmique et Python

Pr. GABLI MOHAMMED


medgabli@yahoo

MIP + Actuariat
FS-Oujda

2023-2024
Algorithmique et Python
PLAN
• Introduction à l'algorithmique
• Instructions élémentaires (Variable, E/S, …)
• Structures conditionnelles
• Structures répétitives
• Tableau
• Algorithmes de tri et de recherche
• Initiation au langage Python
29/10/2023 GABLI - 2023 2
Cours, TD et TP

Voir les deux sites:


1. https://sites.google.com/ump.ac.ma/gabli
2. http://scolarite.ump.ma/login
Les tableaux
Rappel
Algorithme: Note
Variables: i : Entier
Tableau Note[12]: Double
Debut
Pour i ← 0 à 11 Faire
Ecrire (Entrer une note);
Lire ( Note[i] )

FinPour
Fin

GABLI - 2011 4
Les tableaux
Rappel (chercher le plus petit élément)
Algorithme: PlusPetitElement
Variables: i, min, posMin : Entier
Tableau T[7]: entier
Debut
min ← T[0] ;
posMin ← 0 ;
Pour i ← 1 à 6 Faire
Si (min > T[i]) Alors
min = T[i] ;
posMin = i ;
FinSi
FinPour
Fin

GABLI - 2011 5
Algorithme d’échange (Rappel)

La partie de l’algorithme qui permute (échange) les


deux éléments: t[i] et t[j]

temp ← t[i]
t[i] ← t[j]
t[j] ← temp

GABLI - 2011 6
Algorithmes de tri

• Lorsque le type des éléments d’un tableau possède


un ordre total, on peut les ranger en ordre croissant
ou décroissant; on dit qu’on a trié le tableau;
• Il existe plusieurs méthodes de tri qui se
différencient par leur complexité d’exécution et leur
complexité de compréhension pour le
programmeur.
• Dans ce cours, on étudiera le tri par sélection, le tri
à bulle et le tri par insertion.

GABLI - 2011 7
Tri par sélection

Principe

Pour chaque entier j (j de 0 à n-1) :


• parcourir les éléments T [j], T [j + 1], . . ., T [n-1],
• retenir l’indice k du plus petit élément.
• placer au rang j le plus petit élément (en
échangeant T [j] et T [k]).

GABLI - 2011 8
Tri par sélection
Exemple

5 3 7 2 8 1 9

1 3 7 2 8 5 9

1 2 7 3 8 5 9

1 2 3 7 8 5 9
1 2 3 5 8 7 9
1 2 3 5 7 8 9
1 2 3 5 7 8 9

GABLI - 2011 9
Tri par sélection
Algorithme: Tri par sélection
Variables: i, j, indmin : Entier
Tableau T[n]: entier
Debut
Pour i de 0 à n – 2 Faire
indmin ← i
Pour j de i + 1 à n - 1 Faire
Si t[j] < t[indmin] Alors
indmin ← j
FinSi
FinPour
Si indmin ≠ i, Alors
échanger t[i] et t[indmin]
FinSi
FinPour
Fin
GABLI - 2011 10
Tri par sélection
(suite)

avec échanger t[i] et t[indmin]:

temp ← t[i]
t[i] ← t[indmin]
t[indmin] ← temp

Remarque
Le tri par sélection est un algorithme simple, mais il est
considéré comme inefficace à cause de sa complexité élevée
(temps d’exécution, vous verrez la complexité plus loin).

GABLI - 2011 11
Tri à bulle

Principe

• Le tri à bulle consiste à parcourir le tableau en


comparant les éléments côte à côte et en les
permutant s'ils ne sont pas dans le bon ordre.
• On s'arrête dès que l'on détecte que le tableau est
trié : si aucune permutation n'a été faite au cours
d'une passe.

GABLI - 2011 12
Tri à bulle
Exemple
5 3 7 2 8

3 5 7 2 8

3 5 7 2 8

3 5 2 7 8

3 5 2 7 8

On a fini la première passe, le tableau n’est pas


encore trié, donc on passe à la deuxième passe.

GABLI - 2011 13
Tri à bulle
Exemple
3 5 2 7 8

3 5 2 7 8

3 2 5 7 8

3 2 5 7 8

3 2 5 7 8

On a fini la deuxième passe, le tableau n’est pas


encore trié, donc on passe à la troisième passe.

GABLI - 2011 14
Tri à bulle (Exemple)

3 2 5 7 8

2 3 5 7 8

2 3 5 7 8

2 3 5 7 8

2 3 5 7 8

Le tableau est maintenant trié, donc on s’arrète.

GABLI - 2011 15
Tri à bulle (premier algorithme)
Algorithme: Tri_a_bulle
Variables: i, j : Entier
Tableau T[n]: entier
Debut
Pour i de n−1 à 1 Faire
Pour j de 0 à i − 1 Faire
Si T [j] > T [j + 1] Alors
échanger T [j] et T [j + 1]
FinSi
FinPour
FinPour
Fin

Remarque: cet algorithme finit le nombre d’itérations même si


le tableau est trié.
GABLI - 2011 16
Tri à bulle (deuxième algorithme)
Algorithme: Tri_a_bulle
Variables: i, j, passage : Entier
permut: booléan
Tableau T[n]: entier
Debut
passage ← 0
Répéter
permut ← FAUX
Pour i de 0 à n-2-passage Faire
Si T[i] > T[i+1] Alors
echanger T[i] et T[i+1]
permut ← VRAI
FinSi
FinPour
passage ← passage + 1
Jusqu’à permut = FAUX
Fin GABLI - 2011 17
Tri par insertion

Principe

• Ordonner les deux premiers éléments du tableau


• Insérer le 3ème élément de manière à ce que les 3
premiers éléments soient triés
• Insérer le 4ème élément à “sa” place pour que les 4
premiers éléments soient triés
• ...
• Insérer le nème élément à sa place.
Remarque
A la fin de la ième itération, les i premiers éléments sont
triés et rangés au début du tableau.
GABLI - 2011 18
Tri par insertion (Exemple)

5 3 7 2 8

3 5 7 2 8

3 5 7 2 8

2 3 5 7 8

3 5 2 7 8

L’insertion du 2 se fait en comparant d’abord 2


et 7, puis 2 et 5 et enfin 2 et 3.

GABLI - 2011 19
Tri par insertion
Algorithme: Tri_par_insertion
Variables: i, j, x : Entier
Tableau T[n]: entier
Debut
pour i de 1 à n-1 Faire
# mémoriser T[i] dans x
x ← T[i]
# décaler les éléments T[0]..T[i-1] qui sont plus grands
que x, en partant de T[i-1]
j←i
Tant que ( j > 0 et T[j - 1] > x) Alors
T[j] ← T[j - 1]
j←j-1
FinTQ
T[j] ← x
FinPour
Fin
GABLI - 2011 20

Vous aimerez peut-être aussi