12/03/2013
1
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
101MAP - UNS
ALGORITHME DE RECHERCHE
Objectif : Rechercher une information dans un tableau
Méthode : séquentielle
Soit Tun tableau de N éléments et val l’élément cherc
parcours du tableau à partir du premier élément (T[0])
Arrêt quand élément trouvé ou si fin de tableau (T[n-1])
Complexité :
linéaire de l’ordre de n.
Pire cas : parcourt de tout le tableau
MAP - UNS 102
12/03/2013
2
RECHERCHE SÉQUENTIELLE
Algorithme recherche_sequentielle
{Recherche le premier indice où se trouve la valeur val parmi les N données
du tableau tab; affiche l’indice si la valeur est trouvée. }
variables : T [0, N-1], val entier
n, val, indice : entier
Début indice ←0
tant que ( val <> T[indice] && indice < N-1) faire
indice indice + 1
ftq
si T[indice] = val alors
afficher( " l'élément se trouve en : » indice);
sinon
afficher( « Elément non présent " );
fsi
Fin
MAP - UNS 103
7 1 15 8 2
ALGORITHME DE RECHERCHE
Objectif : Rechercher une information dans un tableau trié
Méthode : dichotomique ou « diviser pour régner »
Soit Tun tableau de N éléments et val l’élément cherché
T est trié
Sinon effectuer un prétraitement de tri.
Comparer val avec l’élément u milieu du tableau T.
Si c’est le même => trouvé
sinon on recommence sur la première moitié ou la seconde selon que val est
< à valmid ou val > valmid
Arrêt quand élément trouvé ou si fin de tableau (T[indice-1])
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
MAP - UNS 104
12/03/2013
3
RECHERCHE DICHOTOMIQUE
Algorithme recherche_dichotomique
{Recherche le premier indice 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
106MAP - UNS
12/03/2013
4
ALGORITHMES DE TRI
Objectif : Etant donné une suite de Nnombres de la ranger par ordre
croissant (ou décroissant)
Différents algorithmes
Tri par sélection
Tri se fait en espace constant
Peu économe en temps (2 boucles for imbriquées )
Boucle interne fait N-1 opérations
Boucle externe fait N-1 à itération 1, N-2 (itération 2) …
Complexité 2*(N-1)+(N-2) +(N-3) …+ 1 = (N+1)*N+N! ≈ N2
Tri à bulles
Peu économe en temps (2 boucles for imbriquées )
Complexité ≈ N2
Tri rapide
Econome en temps
Complexité ≈ N*Log(N)
Algorithme récursif
MAP - UNS 107
ALGORITHME DE TRI
Objectif : Etant donné une suite de Nnombres de la ranger par
ordre croissant (ou décroissant)
Méthode : Tri par sélection
Soit Tun tableau de N éléments
Rechercher le plus petit ément parmi les Net on l’échange à la fin avec le 1er
Puis recherche du plus petit parmi les N-1 éléments restant et échange avec le
2ème
… parmi N-k+1 éléments restants échange avec le Kième
MAP - UNS 108
7 8 9 2 0
0 8 9 2 7
0 2 9 8 7 0 2 7 8 9
12/03/2013
5
TRI PAR SELECTION
Algorithme tri_selection
{ Ranger par ordre croissant (ou décroissant) une suite de Nnombres 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
indiceMin ← i
ValMin ← T[i]
pour j = i +1 àN-1 faire
si T[j] < ValMin alors
indiceMin ← j
ValMin ← T[j]
fsi
fpour
T[indiceMin] ← T[i] { Echange des deux valeurs }
T[i] ← ValMin
fpour
Fin MAP - UNS 109
7 8920
7 8 9 2 0
i=0
j=1 j=2 j=3 j=4
indiceMin=0 ValMin=7
indiceMin=3 ValMin=2
IndiceMin=4 ValMin=0
T[0]=0
T[4]=7
i=1
ALGORITHME DE TRI
Objectif : faire remonter les plus grandes valeurs en haut de tableau
Méthode : Tri à bulle
Soit Tun tableau de N éléments
Comparer 1er élément avec 2ème . Si 1er >2ème , échanger les deux éléments
Comparer 2ème élément avec 3ème . Si 2er >3ème , échanger les deux éléments
… comparer N-2ième avec N-1 ième. Si N-2 ième > N-1 ième, échanger les deux éléments.
Recommencer à partir du début tant que vous avez opéré au moins à un échange
MAP - UNS 110
5 1 4 2 8
1 5 4 2 8
1 4 2 5 8
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !