Algorithmes de tri : Sélection, Insertion, Bulles

Telechargé par Hassan Essadik
18
69
Solutions (algorithmes de tri):
Problème:
Dans ce cours
nous allons
étudier ces 3
algorithmes de tri.
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
70
Opérations de bases:
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
71
Fonctionnement:
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
72
0 1 2 3 4 5 6 7 8 9
16 3 11 20 19 1 8 5 2 17
Exemple:
Le plus petit c’est N[5],1 3 11 20 19 16 8 5 2 17
Tableau de départ
Echange
Echange
on l’échange avec N[0]
Le plus petit c’est N[8],on l’échange avec N[1] 1 2 11 20 19 16 8 5 3 17
Echange
Le plus petit c’est N[8],on l’échange avec N[2] 1 2 3 20 19 16 8 5 11 17
Echange
1 2 3 5 8 11 16 17 19 20
Résultat
On reprend ces même opérations …
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
19
73
Algorithme TriSelection
Variables
dim,i,j,indicePetit : Entier
Tmp, N[]: Réels
Début
….
Pour i ← 0 A dim-2
indicePetit ← i
Pour j ← i+1 A dim-1
Si(N[j] < N[indicePetit]) Alors
indicePetit← j
FinSI
FinPour
Tmp ←N[indicePetit]
N[indicePetit] ←N[i]
N[i] ←Tmp
FinPour
Fin
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
74
Algorithme TriParInsertion
Variables
dim,i,j: Entier
Deplacer: Booléen
Tmp, N[]: Réels
Début
….
Pour i ← 1 A dim-1
Deplacer←Vrai
j←i
TantQue ((j >0) AND (Deplacer))
Si(N[j] < N[j-1]) Alors
Tmp ←N[j]
N[j] ←N[j-1]
N[j-1] ←Tmp
Sinon Deplacer ←Faux
FinSI
j--
FinTantQue
FinPour
Fin
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
75
Fonctionnement:
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
76
0 1 2 3 4 5
16 3 11 20 19 18
Exemple:
Tableau de départ
Il y a des permutations effectuées, alors on reprend ces opérations à partir du 1er indice
3 16 11 20 19 18
Si ([0] > N[1]) Alors Permute et indice++
Si (N[1] > N[2]) Alors Permute et indice++
3 11 16 20 19 18
Sinon (N[2] < N[3]) indice++ sans Permute
3 11 16 19 20 18
Si (N[3] > N[4]) Alors Permute et indice++
3 11 16 19 18 20
Si (N[3] > N[4]) Alors Permute et indice++
3 11 16 20 19 18
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
20
77
0 1 2 3 4 5
3 11 16 19 18 20
Sinon (N[0] < N[1]) indice++ sans Permute
Sinon (N[1] < N[2]) indice++ sans Permute
3 11 16 19 18 20
Sinon (N[2] < N[3]) indice++ sans Permute
3 11 16 19 18 20
Sinon (N[4] < N[5]) indice++ sans Permute
3 11 16 19 18 20
Si (N[3] > N[4]) Alors Permute et indice++
3 11 16 18 19 20
3 11 16 18 19 20
Il y a une permutation effectuée, alors on reprend ces opérations à partir du 1er indice
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
78
0 1 2 3 4 5
3 11 16 18 19 20
Sinon (N[0] < N[1]) indice++ sans Permute
Sinon (N[1] < N[2]) indice++ sans Permute
3 11 16 18 19 20
Sinon (N[2] < N[3]) indice++ sans Permute
3 11 16 18 19 20
Sinon (N[4] < N[5]) indice++ sans Permute
3 11 16 18 19 20
3 11 16 18 19 20
3 11 16 18 19 20
Pas de permutation, alors le tableau est trié, on arrête 3 11 16 18 19 20
Sinon (N[3] < N[4]) indice++ sans Permute
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
79
Algorithme TriBulles
Variables
dim,i: Entier
EstTrie: Booléen
Tmp, N[]: Réels
Début
….
EstTrie ←Vrai
TantQue (EstTrie )
EstTrie ←Faux
Pour i ← 0 A dim-1
Si(N[i] > N[i+1]) Alors
Tmp ←N[i]
N[i] ←N[i+1]
N[i+1] ←Tmp
EstTrie ←Vrai
FinSI
FinPour
FinTantQue
Fin
Introduction Tableaux à une dimension Tableaux à deux dimensions Algorithmes de recherche Algorithmes de tri
Les sous-algorithmes
Introduction
Définition
Les Fonctions
Paramètres formels et effectifs
Les Procédures
Paramètres formels et effectifs
Variables locales et globales
Passage des paramètres
Les sous-algorithmes
Introduction
Définition
Les Fonctions
Paramètres formels et effectifs
Les Procédures
Paramètres formels et effectifs
Variables locales et globales
Passage des paramètres
21
81
Principe de la programmation modulaire:
Variables locales et globales Passage des paramètresLes sous-algorithmes Les Fonctions Les Procédures
82
Pourquoi les sous-programmes?
Variables locales et globales Passage des paramètresLes sous-algorithmes Les Fonctions Les Procédures
83
Variables locales et globales Passage des paramètresLes sous-algorithmes Les Fonctions Les Procédures
84
FONCTION NomFonction(Parametre_1 :Type, …, Parametre_n :Type) : Type
Variables
Var1: type_Var1
VarN: type_VarN
DEBUT
Instructions1
InstructionsN
Retourner (valeur)
FinFonction
Syntaxe : Type de retour du résultat
Paramètres
Variables locales de la fonction
Corps de la fonction
Résultat retourné
Variables locales et globales Passage des paramètresLes sous-algorithmes Les Fonctions Les Procédures
22
85
Il existe deux types de paramètres :
Variables locales et globales Passage des paramètresLes sous-algorithmes Les Fonctions Les Procédures
86
FONCTION max (x: réel, y: réel ): réel
Variable
z : réel
DÉBUT
Si (x>y) Alors
z ←x
Sinon z ←y
FinSi
Retourner (z)
FinFonction
Algorithme MaxDeuxVariables
Variables
a,b: réels
Début
Ecrire(‘’Saisir deux valeurs’’)
Lire (a,b)
Ecrire (‘’ la plus grande valeur est :’, max(a,b))
Fin
Exemple:
Lors de l'appel de la fonction
Lors de l'appel de la fonction
max les paramètres formels
seront remplacés par les
paramètres effectifs.
Paramètres formels
Paramètres effectifs
Variables locales et globales Passage des paramètresLes sous-algorithmes Les Fonctions Les Procédures
87
Exercice 1:
A. Écrire une fonction qui retourne le factoriel d'un nombre passé en paramètre;
B. Écrire l'algorithme principal qui demande à l'utilisateur de saisir un nombre Nb puis
calcule et affiche la somme des factoriels entre 0 et Nb en utilisant la fonction de la
question A.
!


Exercice 2:
A. Écrire une fonction qui retourne Vrai si le nombre passé en paramètre est paire sinon
retourne Faux.
B. Écrire l'algorithme principal qui demande à l'utilisateur de saisir un nombre puis affiche s’il
est paire ou impaire en utilisant la fonction de la question A.
Variables locales et globales Passage des paramètresLes sous-algorithmes Les Fonctions Les Procédures
88
Variables locales et globales Passage des paramètresLes sous-algorithmes Les Fonctions Les Procédures
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!