Académique Documents
Professionnel Documents
Culture Documents
C5 APIAlgoRechercheTriFusion
C5 APIAlgoRechercheTriFusion
PLAN DU COURS
• Introduction au langage C
• Notions de compilation
• Variables, types, constantes,
• Tableaux, opérateurs
• Entrées sorties de base
• Structures de contrôle
• Algorithmes de recherche
• Algorithmes de Tri –Insertion-Fusion
• Les pointeurs
• Procédures et fonctions
• les types composés
• Allocation dynamique
• Listes Chaînées
ALGORITHME DE RECHERCHE
• Complexité :
• linéaire de l’ordre de n.
• Pire cas : parcourt de tout le tableau
1
12/03/2013
RECHERCHE SÉQUENTIELLE
Algorithme recherche_sequentielle
Fin
ALGORITHME DE RECHERCHE
• Complexité :
• T(n) nombre d’opérations sur un tableau de taille n
• T(n) satisfait l’équation de récurrence T(n) = T(n/2)+1
2
12/03/2013
RECHERCHE DICHOTOMIQUE
Algorithme recherche_dichotomique
{Recherche le premier indice où se trouve la valeur val en utilisant la stratégie diviser pour régner }
variables T [0, N-1] , val entier
lnf, Sup, N, Mi : entier
Début
Saisir (val)
Inf ← 0
Sup ← N-1
Mi ← (Inf + Sup)/2
tant que ( val <> T[Mi] && Inf <= Sup) faire
si val < T[Mi] alors
Sup = Mid - 1
sinon
Inf = Mid + 1
fsi
Mi ← (Inf + Sup)/2
ftq
si T[Mi] = val alors
afficher( " l'élément se trouve en : » Mi);
sinon
afficher( « Elément non présent " );
fsi
Fin
MAP - UNS 105
PLAN DU COURS
• Introduction au langage C
• Notions de compilation
• Variables, types, constantes,
• Tableaux, opérateurs
• Entrées sorties de base
• Structures de contrôle
• Algorithmes de recherche
• Algorithmes de Tri –Insertion-Fusion
• Les pointeurs
• Procédures et fonctions
• les types composés
• Allocation dynamique
• Listes Chaînées
3
12/03/2013
ALGORITHMES DE TRI
ALGORITHME DE TRI
7 8 9 2 0
• Puis recherche du plus petit parmi les N-1 éléments restant et échange avec le
2ème
0 8 9 2 7
0 2 9 8 7 0 2 7 8 9
4
12/03/2013
Algorithme tri_selection
{ Ranger par ordre croissant (ou décroissant) une suite de N nombres rangés dans un
tableau T. }
variables tab : tableau [0, N-1] de entier
N, i, j, indiceMin, ValMin : entier
Début
pour i = 0 à N-2 faire 7 8 9 2 0
indiceMin ← i
i=0 i=1
ValMin ← T[i]
pour j = i +1 à N-1 faire
7 8 9 2 0
si T[j] < ValMin alors
indiceMin ← j j=1 j=2 j=3 j=4
ValMin ← T[j]
fsi
fpour indiceMin=0 ValMin=7
indiceMin=3 ValMin=2
T[indiceMin] ← T[i] { Echange des deux valeurs }
IndiceMin=4 ValMin=0
T[i] ← ValMin T[0]=0
fpour T[4]=7
Fin MAP - UNS 109
ALGORITHME DE TRI
5 1 4 2 8
• Comparer 2ème élément avec 3ème . Si 2er >3ème , échanger les deux éléments
1 5 4 2 8
• … comparer N-2ième avec N-1 ième. Si N-2 ième > N-1 ième, échanger les deux éléments.
1 4 2 5 8
• Recommencer à partir du début tant que vous avez opéré au moins à un échange
5
12/03/2013
TRI À BULLE
Algorithme tri_à_bulle
{ faire remonter les plus grandes valeurs en haut d’un tableau T de N éléments. }
variables tab : tableau [0, N-1] de entier
N, i, j, temp : entier
nouvel_echange : booleen
Début
répéter
nouvel_echange ←faux
pour i = 0 à N-1 faire
si T[ i ] > T[i+1] alors
temp ← T[ i +1]
T[i+1 ] ← T[ i ]
T[ i ] ← temp
nouvel_echange ← vrai
fsi
fpour
tant que nouvel_echange ==vrai
Fin MAP - UNS 111
• Objectif : Ajouter un élément dans un tableau trié ou pas. Insertion n’est possible
que si il reste de la place dans le tableau. L’Insertion est un décalage à droite
des éléments du tableau
• Méthode : Insertion Soit T un tableau de taille de N éléments, On insère un
élément V à un position p
• Variable k positionnée en fin de tableau 5 1 4 2 8
p k
• Copie de T[k] dans T[k+1] tant que k>=P
5 1 4 2 8 8
p k
5 1 4 2 2 8
p k
6
12/03/2013
MAP - UNS
k 114
7
12/03/2013
ALGORITHME DE SUPPRESSION
POSITION P
• Objectif : Supprimer un élément dans un tableau trié ou pas. La suppression
est un décalage à gauche des éléments du tableau
• Méthode : Suppression Soit T un tableau de taille de N éléments, On
supprime un élément V à un position p
• Variable k positionnée à p+1 5 1 4 2 8
p k
• Copie de T[k] dans T[k-1] tant que k<N
5 1 2 2 8
p k
5 1 2 8 8
p k
• Décrémenter N
MAP - UNS
8
12/03/2013