Tableaux p.1/21
Plan...
Les algortihmes de tri Dnition dun algorithme de tri, Le tri par minimum successifs, Le tri a bulles, Le tri rapide. Les algorithmes de recherche. Recherche squentielle non trie Recherche squentielle trie, Recherche dichotomique.
Tableaux p.2/21
Tableaux p.3/21
La procdure changer...
Tous les algorithmes de tri utilisent une procdure qui permet dchanger (de permuter) la valeur de deux variables Dans le cas o les variables sont entires, la procdure changer est la suivante : procdure changer (E/S a,b : Entier) Dclaration temp : Entier dbut temp a a b b temp n
Tableaux p.4/21
Tableaux p.5/21
i=3 20, 30, 115, 63, 47, 101 i=4 20, 30, 47, 63, 115, 101
Donc en sortie :
Il nous faut donc une fonction qui pour soit capable de dterminer le plus petit lment (en fait lindice du plus petit lment) dun tableau partir dun certain rang
Tableaux p.6/21
Fonction indiceDuMinimum...
fonction indiceDuMinimum (t : Tableau[1..MAX] dEntier ; rang, nbElements : Naturel) : Naturel Dclaration i, indiceCherche : Naturel dbut indiceCherche rang pour i rang+1 nbElements faire si t[i]<t[indiceCherche] alors indiceCherche i nsi retourner indiceCherche npour n
Tableaux p.7/21
Tableaux p.8/21
Complexit
Recherche du minimum sur un tableau de taille Parcours du tableau.
Complexit en
Tableaux p.9/21
Le tri bulles
Principe de la mthode : Slectionner le minimum du tableau en parcourant le tableau de la n au dbut et en changeant tout couple dlments conscutifs non ordonns.
Tableaux p.10/21
Tableaux p.11/21
Tableaux p.12/21
Tableaux p.13/21
Le tri rapide
Principe de la mthode Choisir un lment du tableau appel pivot, Ordonner les lments du tableau par rapport au pivot Appeler rcursivement le tri sur les parties du tableau gauche et droite du pivot.
Tableaux p.14/21
Le tri rapide
Algorithme :
procdure TriRapide (E/S t : Tableau[1..MAX] dEntier; gauche,droit : Naturel) Dclaration i,j : Naturel; pivot,x : Entier dbut i gauche;j droit;pivot t[(i+j)/2] rpter tant que t[i] pivot faire i i+1ntant que tant que t[j] pivot faire j j-1ntant que si i j alors echanger(tab[i],tab[j]) i+1 i j-1 j nsi jusqu ce que i j si gauche j alors TriRapide(t,gauche,j) nsi si i droit alors TriRapide(t,i,droit) nsi
"
"
"
"
"
"
"
Tableaux p.15/21
Exemple. . .
Par exemple, pour trier 101, 115, 30, 63, 47, 20 , on va avoir les itrations suivantes : 101(i), 115, 30(p), 63, 47, 20(j)
20, 115(i), 30, 63, 47(j), 101 20, 47, 30(i), 63(j), 115, 101 20, 47(j), 30, 63(i), 115, 101
&
et
' & (
Tableaux p.16/21
Complexit
Le tri par rapport au pivot ncessite de parcourir le tableau. On relance ensuite le processus sur les deux sous tableaux gauche et droite du pivot.
56 4 4 4 5
Posons
. On obtient :
56
Tableaux p.17/21
Algorithmes de recherche
Recherche dans un tableau non tri. fonction rechercheNonTrie (tab : Tableau[0..MAX] dlments, x : lment) : Naturel Dclaration i : Naturel dbut i 0 tant que (i MAX) et (tab[i] x) faire i i+1 ntantque si i=MAX+1 alors retourner MAX+1 nsi retourner i n
B
Tableaux p.18/21
Algorithmes de recherche
Recherche squentielle dans un tableau tri. fonction rechercheSeqTrie (tab : Tableau[0..MAX] dlments, x : lment) : Naturel Dclaration i : Naturel dbut i 0 tant que x>tab[i] faire i i+1 ntantque si x=tab[i] alors retourner i nsi retourner MAX+1 n
Tableaux p.19/21
Algorithme de recherche
fonction rechercheDicoTrie (tab : Tableau[0..MAX] dlments, x : lment) : Naturel Dclaration gauche,droit,milieu : Naturel dbut gauche 0;droit MAX tant que gauche droit faire milieu (gauche+droit) div 2 si x=tab[milieu] alors retourner milieu nsi si x<tab[milieu] alors droit milieu-1 sinon gauche milieu+1 nsi ntantque retourner MAX+1 Tableaux p.20/21 n
B
Exemple
On cherche 101 dans 20, 30, 47, 63, 101, 115 .
i=1 20(g), 30, 47(m), 63, 101, 115(d) . i=2 20, 30, 47, 63(g), 101(m), 115(d) .
Tableaux p.21/21