Vous êtes sur la page 1sur 9

LYCEE

PROFESSEUR :

Chapitre N 6

les traitements avances

I) Tri d'un tableau:


1. introduction:
Le tri consiste ordonner dans un ordre bien dtermin (croissant ou dcroissant) les lments dun tableau. Il existe plusieurs mthodes de tri. Dans la suite on vous en prsente 3 : tri par slection, tri bulles et tri par insertion. Enonc : On se propose de remplir un tableau T de n lments (1<n<20) par des entiers, le trier et lafficher. Exemple n= 4 T 15 0 10 50 .. T 0 10 15 50 ..

2. tri par slection:


Principe : 1) On commence parcourir le tableau partir du premier lment pour chercher lindice de ce minimum. Ce dernier peut se rpter plusieurs fois, on dcide de choisir le premier ou le dernier). 2) On compare ce minimum avec T [1] ; sils ne sont pas dans le bon ordre, on les permute. Aprs cette opration, il est sur que T [1] contient la plus petite valeur. 3) Le sous tableau de T allant de 2 n est non tri, on rpte les tapes 1) et 2) et ainsi de suite jusqu lavant dernier lment (n-1). Analyse du programme principal Tableau de dclaration de NOM : TRI_TABLEAU nouveaux types S L.D.E O.U Type 4 Rsultat = PROC AFFICHE (N, T) AFFICHE TAB = tableau de Nmax entiers. N Tableau de dclaration des objets 1 N = PROC LECTURE (N) T Objet Nature / Type 3 T = PROC TRI_SELECTION (N, T) LECTURE AFFICHE Procdure TRI_SELECTION 2 T = PROC REMPLIR (N, T) N Variable/entier T T TAB 5 FIN TRI_TABLEAU REMPLIR LECTURE Procdure Algorithme du programme principal TRI_SELECTION Procdure 0/ Dbut TRI_TABLEAU REMPLIR Procdure 1/ PROC LECTURE (N) Nmax Constante =19 2/ PROC REMPLIR (N, T) 3/ PROC TRI_SELECTION (N, T) 4/ PROC AFFICHE (N, T)

5/ Fin TRI_TABLEAU

Page 1 / 9

Analyse de la procdure LECTURE DEF PROC LECTURE (var N : entier) S 1 2 L.D.E Rsultat = N N = Rpter N = donne ("Donner le nombre dlments") Jusqu (N dans [2.. Nmax]) FIN LECTURE O.U

Algorithme de la procdure lecture 0/ DEF PROC LECTURE (var N : entier) 1/ Rpter Ecrire (" Donner le nombre dlments") Lire (N) Jusqu (N dans [2.. Nmax])

2/ FIN LECTURE

Analyse de la procdure REMPLIR DEF PROC REMPLIR (N : entier ; VAR T : TAB) S L.D.E O.U Rsultat = T i 1 T =[] Pour i de 1 N faire T[i] = donne ("T[",i, "]=") Fin Pour 2 FIN REMPLIR Tableau de dclaration des objets locaux Objet Nature / Type i Compteur / Entier

Algorithme de la procdure remplir 0/ DEF PROC REMPLIR (N : entier ; VAR T :TAB ) 1/ Pour i de 1 N faire Ecrire ("T[",i, "]=") Lire (T[i]) Fin pour 2/ FIN REMPLIR

Analyse de la procdure TRI_SELECTION DEF PROC TRI_SELECTION (N : entier ; VAR T : TAB ) S L.D.E O.U Rsultat = T T = Pour i de 1 N-1 faire i 1 ppm ppm FN PREMPOSMIN (i,N,T) PREMPOSMIN Si T[ppm] T[i] alors PERMUT PROC PERMUT (T[ppm],T[i]) Finsi 2 Fin Pour FIN TRI_SELECTION Tableau de dclaration des objets locaux Objet Nature / Type i Compteur/Entier ppm Variable/Entier PREMPOSMIN Fonction PERMUT Procdure

Algorithme de la procdure tri_selection 0/ DEF PROC TRI_SELECTION (N : entier ; VAR T : TAB) 1/ Pour i de 1 N faire ppm FN PREMPOSMIN (i,N,T) Si T[ppm] T[i] alors PROC PERMUT (T[ppm],T[i]) Finsi Fin Pour 2/ FIN TRI_SELECTION

Page 2 / 9

Analyse de la fonction PREMPOSMIN DEF FN PREMPOSMIN (d, f : entier ; T : TAB) : entier L.D.E Rsultat = PREMPOSMIN 2 PREMPOSMIN posmin 1 posmin= [posmind] Pour j de d+1 f faire Si T[j] <T[posmin] alors Posminj Finsi 3 Fin Pour FIN PREMPOSMIN Tableau de dclaration des objets locaux Objet Nature / Type posmin Entier j Compteur/entier Analyse de la procdure PERMUT DEF PROC PERMUT (VAR X,Y : entier ) S L.D.E O.U Rsultat = X,Y int 2 intX 3 XY 1 Yint 4 FIN PERMUT S O.U posmin j

ALGORITHME

DE

LE

FONCTION PREMPOSMIN 0/ DEF FN PREMPOSMIN (d, f : entier ; T :TAB ) : entier 1/ [posmind] Pour j de d+1 f faire Si T[j] <T[posmin] alors Posminj Finsi Fin Pour 2/ PREMPOSMIN posmin 3/ FIN PREMPOSMIN

Tableau de dclaration des objets locaux Objet Nature / Type int Variable /Entier ALGORITHME DE LA PROCDURE PERMUT 0/ DEF PROC PERMUT (VAR X,Y : entier ) 1/ intX 2/ XY 3/ Y int

4/ FIN PERMUT
Analyse de la procdure AFFICHE DEF PROC AFFICHE (N : entier ; T : TAB ) S 1 2 L.D.E Rsultat = T T = Pour i de 1 N faire Ecrire (" T[ ",i,"]= ", T[i]) Fin Pour FIN AFFICHE O.U i Tableau de dclaration des objets locaux Objet Nature / Type i Compteur/ entier ALGORITHME DE LA PROCDURE AFFICHE 0/ DEF PROC AFFCICHE ( N : entier ; T :TAB ) 1/ Pour i de 1 N faire Ecrire (" T[ ",i,"]= ", T[i]) Fin Pour

2/ FIN AFFICHE

3. tri bulles:
Principe : 1) On parcourt le tableau en comparant toute paire dlments conscutifs (ai-1, ai) non ordonns. Ainsi aprs le premier parcours, llment maximum se retrouve en position n. On suppose que lordre scrit de gauche droite ( gauche le plus petit lment, droite le plus grand lment). 2) On rpte lopration avec le nouveau sous tableau non tri (a1, a2,, an-1), et ainsi de suite jusqu terminer tous les sous tableaux (le dernier est un couple).

Page 3 / 9

Analyse de la procdure TRI_BULLES DEF PROC TRI_BULLES (N : entier ; VAR T : TAB) S L.D.E O.U Rsultat = T i T = [] Pour i de N 1 faire j 1 [] Pour j de 2 i faire PERMUT [] Si T [j-1] >T[j] alors PROC PERMUT (T [j-1], T[j]) Finsi FinPour Fin Pour FIN TRI_BULLES 2 Tableau de dclaration des objets locaux Objet Nature / Type i Compteur/Entier j Compteur/Entier PERMUT Procdure

Le nom de tri bulles vient donc de ce qu la fin de chaque itration interne (2me boucle), les plus grands nombres de chaque sous tableau se dplacent vers la droite successivement comme des bulles de la gauche vers la droite. NB : les procdures lecture, remplir, permut et affiche sont les mmes.

Algorithme de la procdure tri__BULLES 0/ DEF PROC TRI_BULLES ( N : entier ; VAR T :TAB ) 1/ []Pour i de N 1 faire [] Pour j de 2 i faire []Si T[j-1] >T[j] alors PROC PERMUT (T[j-1],T[j]) Finsi FinPour Fin Pour

2/ FIN TRI_BULLES

4. tri par insertion:


Principe : a) c) Commencer avec le 2me lment. b) Comparer l'lment choisi avec tous ses prcdents dans la liste et l'insrer dans sa bonne place pour que ces lments soient rangs. Rpter les tapes 1 et 2 jusqu'a arriver au dernier nombre. La liste sera trie en ordre croissant NB : les procdures lecture, remplir, permut et affiche sont les mmes
Analyse de la procdure TRI_INSERTION DEF PROC TRI_INSERTION (N:entier, VAR T:TAB) L.D.E

S 1

O.U

Rsultat: T T=[] Pour i de 2 N faire [j <-1;B<-Vrai]TantQue j < i et (B) faire si T[i]<T[j] alors B<-faux X<-T[i] Pour k dcroissant de i j+1 faire T[k] <-T[k-1] FinPour T[j] <- X Sinon j<-j+1 FinSi
Page 4 / 9

i j k B X

FinTantque FinPour FIN TRI_INSERTION.

Tableau de dclaration des objets locaux: Objet i j k B X Nature / Type Entier Entier Entier Boolen entier

Algorithme de la procdure INSERTION

0)DEF PROC INSERTION (N:ENTIER; T:TAB) 1)Pour i de 2 N Rpter j <-1 B <- Vrai TantQue j < i et (B=vrai) faire si T[i]<T[j] alors B <-faux X <-T[i] Pour k dcroissant de i j+1 Rpter T[k] <- T[k-1] FinPour T[j] <- X Sinon j <- j+1 FinSi FinTantque FinPour 2) FIN INSERTION.

II)Recherche d'un lment dans un tableau:


1. recherche squentielle:
Cette mthode de recherche consiste parcourir les lments du tableau un par un jusqu' trouver la valeur cherche ou arriver la fin du tableau
Analyse du programme principal NOM : Recherche_Seq S L.D.E 4 Rsultat = PROC AFFICHE (Verif) 3 Verif Recherche (T, N, K) 2 Saisie (T, N, K) 1 FIN Recherche_Seq

O.U AFFICHE N T Saisie K recherhce

Page 5 / 9

Tableau de dclaration des Objets Objets T N, K Saisie, Affiche Recherche Type/Nature TAB Entier Procdure Fonction

Tableau de dclaration des nouveaux types Types TAB = Tableau de 100 entiers

Algorithme du programme principal 0) Dbut Recherche_Seq 1) Saisie (T, N, K) 2) Verif Recherche (T, N, K) 3) Affiche (Verif) 4) Fin Recherche_Seq Analyse de la procdure Saisie: DEF PROC Saisie (VAR Tf : TAB ; VAR Nf, Kf : Entier) L.D.E O.U Rsultat = (Tf,Nf,Kf) i Nf=[ ]rpter Nf=donne ("Donner la taille du tableau : ") Jusqu' (Nf dans [1..100]) Tf=[ ] pour i de 1 Nf Faire Tf=donne ("Donner llment N", i, ": ") Fin pour Kf=donne ("Donner la valeur a cherche : ") Fin saisie

S 4 1 2 3 5

Tableau de dclaration des Objets locaux Objet s i Type/Natur e Entier

Algorithme de la procdure saisie: 0) Dbut procdure Saisie (VAR Tf : TAB ; VAR Nf, Kf : Entier) 1) Rpter Ecrire ("Donner la taille du tableau : "), Lire (Nf) Jusqu' (Nf dans [1..100]) 2) Pour i de 1 Nf Faire Ecrire ("Donner llment N", i, ": "), Lire (Tf[i]) Fin Pour 3) Ecrire ("Donner la valeur a cherche : "), Lire (Kf) 4) Fin Saisie Analyse de la fonction recherhce: DEF FN recherhce (Tf : TAB ; Nf, Kf : Entier):entier S L.D.E O.U 3 Rsultat = recherche i 2 rechercheTrouve Trouve 1 Trouve= [Trouve-1, i1] Rpter Si Tf[i] = Kf Alors Trouve i Sinon i i+1 Finsi Jusqu (Trouve <>-1) OU (i > Nf) 4 Fin recherche Page 6 / 9

Tableau de dclaration des Objets locaux Objet s i Trouve Type/Natur e Entier Entier

Algorithme de la fonction Recherche : 0) Dbut fonction recherche (Tf : TAB ; Nf, Kf : Entier) : Boolen 1) [Trouve -1, i 1] Rpter Si Tf[i] = Kf Alors Trouve i Sinon i i+1 Finsi Jusqu (Trouve <>-1) OU (i > Nf) 2) Recherche Trouve 3) Fin Recherche Analyse de la procdure Affiche: DEF PROC Affiche(Veriff:entier) S L.D.E 2 Rsultat = crire (msg) 1 msg=[msg(K," nexiste pas dans le tableau")]si (veriff<>-1) alors msg(K," existe dans le tableau l'indice",veriff) fin si 3 fin Affiche Algorithme de la procdure Affiche : 0) Dbut procdure Affiche (Veriff : Boolen) 1) msg(K," nexiste pas dans le tableau") 2) Si Veriff = vrai Alors Ecrire (K," existe dans le tableau l'indice",Veriff) Finsi 3) Fin Affiche

O.U

2. recherche dichotomique:

La mthode ne s'applique que lorsque le tableau est tri


Cette mthode de recherche consiste : 1. Fixer le dbut (Deb) et la fin (Fin) du tableau, 2. Fixer le milieu du tableau (Mil = (Fin + Deb) Div 2), 3. Comparer K et T[Mil], Si (K > T[Mil]) alors rechercher K dans le sous tableau [Mil + 1 Fin] sinon si (K < T[Mil]) alors dans le tableau [Deb Mil - 1], 4. Rpter les tapes 1, 2 et 3 jusqu (K = T[Mil]) ou (Deb > Fin)

a)Principe :

b)Exemple :
Soit un tableau T contenant les dix lments suivants : T: -5
1

-2
2

-1
3

0
4

2
5

8
6

10
7

12
8

12
9

40
10

Pour K = -2 le programme affichera "-2 existe dans le tableau" Pour K = 5 le programme affichera "5 nexiste pas dans le tableau"
Analyse du programme principal: NOM : Recherche_Dicho S L.D.E Page 7 / 9

c)Analyse:

O.U

4 3 2 1

Rsultat = PROC AFFICHE (Verif) Verif Recherche (T, N, K) Saisie (T, N, K) FIN Recherche_Seq

AFFICHE N T Saisie K recherhce

Tableau de dclaration des Objets


Algorithme du programme principal : Objets Type/Nature

Tableau de dclaration des nouveaux types Types TAB = Tableau de 100 entiers

0) Dbut Recherche_Dicho TAB T 1) Saisie (T, N, K) N, K Entier 2) Verif Recherche (T, N, K) Saisie, Affiche Procdure 3) Recherche Affiche (Verif) Fonction 4) Fin Recherche_ Dicho

S 3 2 1

Analyse de la fonction Recherche: DEF FN recherhce (Tf : TAB ; Nf, Kf : Entier):entier L.D.E Rsultat = recherche rechercheTrouve Trouve= [Trouve-1, Deb1,FinNf] Rpter Mil (Deb + Fin) Div 2 Si Tf[Mil] > Kf Alors Fin Mil - 1 Sinon Si Tf[Mil] < Kf Alors Deb Mil + 1 Sinon Trouve Mil Finsi Jusqu (Trouve<>-1) OU (Deb > Fin) Fin recherche

O.U

i Deb Fin Trouve

Algorithme de la fonction Recherche :

0) Dbut fonction recherche (Tf : TAB ; Nf, Kf : Entier) : entier 1) [Trouve -1, Deb 1, Fin Nf] Rpter Mil (Deb + Fin) Div 2 Tableau de dclaration Si Tf[Mil] > Kf Alors des Objets locaux Fin Mil - 1 Sinon Objets Type/Nature Si Tf[Mil] < Kf Alors i, Deb, Fin Entier Deb Mil + 1 Trouve Sinon Trouve i Finsi Jusqu (Trouve <>-1) OU (Deb > Fin) 2) Recherche Touve
Page 8 / 9

3) Fin Recherche

Page 9 / 9

Vous aimerez peut-être aussi