Académique Documents
Professionnel Documents
Culture Documents
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
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)
temp ← t[i]
t[i] ← t[j]
t[j] ← temp
GABLI - 2011 6
Algorithmes de tri
GABLI - 2011 7
Tri par sélection
Principe
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)
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
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
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
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
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
Principe
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
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