[PDF] [PDF] Les algorithmes de tri - Luc Brun





Previous PDF Next PDF



TP 7 Algorithmes de tri

Le tri à bulles est un algorithme de tri classique. Son principe est simple et il est très facile à implémenter. On considère un tableau de nombres T



Chapitre 4 : Les algorithmes de tri

8.5 – Tri à bulles. • Optimisation de l'algorithme (si temps suffisant). – Après avoir traité i-1 éléments (1 ≤ i ≤ n). • Les éléments de 1..i-1 sont triés.



Complexité (tri à bulle)

La complexité d'un algorithme est la fonction mathématique qui décrit en fonction de la taille des données d'entrées (par exemple le nombre de mots) 



Vous avez dit trier ? 1 - algorithmes simples

tri d'un jeu de cartes le tri à bulle dont le principe est assez simple



Algorithmes de tri interne [tr] (3) Méthodes par échanges

Une méthode naıve conduit `a l'algorithme du « tri bulles ». Une autre bulle puis `a trier récursivement un tableau de n−1 éléments. Si C(n) désigne le ...



Leçon 903 : Exemples dalgorithmes de tri. Correction et complexité

Algorithm 3 Algorithme du tri par dénombrement. 1: function Tri-Bulle(A). > A : tableau à trier. 2:.



Introduction à lalgorithmique et la complexité (et un peu de CAML

Tri à Bulles. Tri Fusion. Faire mieux ? Outline. 1. Algorithme de Tri par Sélection. 2. Algorithme de Tri par Insertion. 3. Algorithme de Tri à Bulles. 4.



LIFAP3 : Algorithmique et programmation procédurale

Le tableau est donc bien trié de 0 à n-1 (et il ne reste rien à trier) ce qui prouve que l'algorithme de tri est correct. Tri à bulles. Le tri à bulles est un 



fiche-tri-selection-bulles-insertion.pdf

Ce critère est en effet une relation d'ordre total sur les éléments à trier. La conception d'un algorithme de tri dépend du support matériel de la séquence de 



ALGORITHMES DE TRI

- Algorithme de tri par insertion. Pour terminer pour aller plus loin



[PDF] Chapitre 4 : Les algorithmes de tri

tableau vide est trié – tableau ne contenant qu'un seul élément est trié important cet algorithme requiert Le principe du tri à bulles (bubble



[PDF] Leçon 903 : Exemples dalgorithmes de tri Correction et complexité

Algorithm 3 Algorithme du tri par dénombrement 1: function Tri-Bulle(A) > A : tableau à trier 2:



[PDF] Les algorithmes de tris - LIP6

Quelques algorithmes de tris Tris élémentaires Tri par insertion Tri par sélection Tri par permutation Tris avancés Tri Fusion Tri rapide Blin Lélia



[PDF] Méthodes de tri - Kitebnet

La conception d'un algorithme de tri dépend du support Remarque: Dans le pire des cas le tri à bulles fait (n- 1)+(n-2)+ +2+1 comparaisons et autant 



[PDF] Sorting Algorithms - Infoscience

Les algorithmes de tri présentés dans ce document sont soit : - élémentaires : tri à bulles tri par sélection tri par insertion et tri par shell



[PDF] Les algorithmes de tri - Luc Brun

Les algortihmes de tri Définition d'un algorithme de tri Le tri par minimum successifs Le tri a bulles Le tri rapide Les algorithmes de recherche



[PDF] Complexité (tri à bulle) - limsi

La complexité d'un algorithme est la fonction mathématique qui décrit en fonction de la taille des données d'entrées (par exemple le nombre de mots) 



[PDF] Algorithmes de tri interne [tr] (3) Méthodes par échanges - Unisciel

Tout le probl`eme réside dans le choix des éléments ix et jx `a permuter Une méthode na?ve conduit `a l'algorithme du « tri bulles »

Algorithmique...

Les algorithmes de tri

Nicolas Delestre et Michel Mainguenaud

Adapté pour l'ENSICAEN par

Luc Brun

luc.brun@ensicaen.fr

Tableaux - p.1/23

Plan...

Les algortihmes de tri

Définition d'un algorithme de tri,Le tri par minimum successifs,Le tri a bulles,Le tri rapide.

Les algorithmes de recherche.

Recherche séquentielle non triéeRecherche séquentielle triée,Recherche dichotomique.

Tableaux - p.2/23

Définition d'un algorithme de Tri

Les tableaux permettent de stocker plusieurs éléments de même type au

sein d'une seule entité,Lorsque le type de ces éléments possède un ordre total, on peut donc lesranger en ordre croissant ou décroissant,Trier un tableau c'est donc ranger les éléments d'un tableau en ordrecroissant ou décroissant

Dans ce cours on ne fera que des tris en ordre croissant Il existe plusieurs méthodes de tri qui se différencient par leur complexité d'exécution et leur complexité de compréhension pour le programmeur. Examinons tout d'abord :le tri par minimum successif

Tableaux - p.3/23

La procédure échanger...

Tous les algorithmes de tri utilisent une procédure qui permet d'échanger (de permuter) la valeur de deux variables Dans le cas où les variables sont entières, la procédure échanger est la suivante : procédureéchanger(E/S a,b : Entier)

Déclarationtemp : Entier

début temp←a a←b b←temp fin

Tableaux - p.4/23

Tri par minimum successif...

Principe

Le tri par minimum successif est

un tri par sélection : Pour une place donnée, on sélectionne l'élément qui doit y être positionné De ce fait, si on parcourt la tableau de gauche à droite, on positionne à chaque fois le plus petit élément qui se trouve dans le sous tableau droit Ou plus généralement : Pour trier le sous-tableau t[i..nbElements] il suffit de positionner au rang i le plus petit élément de ce sous-tableau et de trier le sous-tableau t[i+1..nbElements]

Tableaux - p.5/23

Tri par minimum successif...

Par exemple, pour trier<101, 115, 30, 63, 47, 20>, on va avoir les boucles suivantes : i=1<101, 115, 30, 63, 47, 20>i=2<20, 115, 30, 63, 47, 101>i=3<20, 30, 115
, 63, 47, 101> i=4<20, 30,

47, 63, 115, 101>

i=5<20,30, 47, 63, 115, 101>Donc en sortie :<20, 30, 47, 63, 101, 155> Il nous faut donc une fonction qui pour soit capable de déterminer le plus petit élément (en fait l'indice du plus petit élément) d'un tableau à partir d'un certain rang

Tableaux - p.6/23

Fonction indiceDuMinimum...

fonctionindiceDuMinimum(t : Tableau[1..MAX] d'Entier ; rang, nbElements :

Naturel) :Naturel

Déclarationi, indiceCherche : Naturel

début indiceCherche←rang pouri←rang+1ànbElementsfaire sit[i]Tableaux - p.7/23

Tri par minimum successif...

L'algorithme de tri est donc :

procédureeffectuerTriParMimimumSuccessif(E/S t : Tableau[1..MAX] d'Entier; E nbElements : Naturel)

Déclarationi,indice : Naturel

début pouri←1ànbElements-1faire sii?=indicealors echanger(t[i],t[indice]) finsi finpour fin

Tableaux - p.8/23

Complexité

Recherche du minimum sur un tableau de taillen

→Parcours du tableau.

T(n) =n+T(n-1)?T(n) =n(n+ 1)

2

Complexité enO(n2).

Tableaux - p.9/23

Le tri à bulles

Principe de la méthode : Sélectionner le minimum du tableau en parcourant le tableau de la fin au début et en échangeant tout couple d'éléments consécutifs non ordonnés.

Tableaux - p.10/23

Tri à bulles : Exemple

Par exemple, pour trier<101, 115, 30, 63, 47, 20>, on va avoir les boucles suivantes : i=1<101, 115, 30, 63, 47, 20 <101, 115, 30, 63,

20, 47>

<101, 115, 30,

20, 63, 47>

<101, 115,

20, 30, 63, 47>

<101,

20, 115, 30, 63, 47>

i=2<

20, 101, 115, 30, 63, 47>

i=3<20, 30,101, 115, 47, 63>i=4<20, 30,47,101, 115, 63>i=4<20, 30, 47, 63, 101, 115>Donc en sortie :<20, 30, 47, 63, 101, 155>

Tableaux - p.11/23

Tri à bulles : l'algorithme

procédureTriBulles(E/S t : Tableau[1..MAX] d'Entiers,nbElements : Naturel)

Déclarationi,k : Naturel

début pouri←0ànbElements-1faire pourk←nbElements-1ài+1faire sit[k]Tableaux - p.12/23

Tri à bulles : Complexités

Nombre de tests(moyenne et pire des cas) :

T(n) =n+T(n-1)?T(n) =n(n+ 1)

2 Compléxité enO(n2).Nombre d'échanges (pire des cas):

E(n) =n-1 +n-2 +···+ 1→ O(n2)Nombre d'échange (en moyenne)O(n2)(calcul plus compliqué)

En résumé : complexité enO(n2).

Tableaux - p.13/23

Le tri rapide

Principe de la méthode

Choisir un élément du tableau appelépivot,Ordonner les éléments du tableau par rapport au pivotAppeler récursivement le tri sur les parties du tableau

gauche et

à droite du pivot.

Tableaux - p.14/23

La partition

procédurepartition(E/S t: Tableau[1..MAX] d'Entier; E :premier, dernier :

Naturel, S: indPivot:Naturel)

Déclarationcompteur, i :Naturel,pivot:Entier

début compteur←premier pivot←t[premier] pouri←premier+1àdernierfaire sit(i)< pivotalors compteur←compteur+1 echange(t[i],t[compteur]); finsi finpour echanger(T,compteur,premier) indPivot←compteur fin

Tableaux - p.15/23

Exemple de partition6(c)

3(i) 0 9 1 7 8 2 5 4 6

3(i,c)

0 9 1 7 8 2 5 4 6 3

0(i,c)

9 1 7 8 2 5 4 6 3 0(c) 9(i) 1 7 8 2 5 4 6 3 0(c) 9 1(i) 7 8 2 5 4 6 3 0 1(c) 9(i) 7 8 2 5 4 6 3 0 1(c) 9 7 8 2(i) 5 4 6 3 0 1 2(c) 7 8 9(i) 5 4 6 3 0 1 2 5(c) 8 9 7(i) 4 6 3 0 1 2 5 4(c) 9 7 8(i) 4 3 0 1 2 5 6(c) 9 7 8

Tableaux - p.16/23

Le tri rapide

Algorithme :

procéduretriRapide(E/S t : Tableau[1..MAX] d'Entier; gauche,droit :Naturel)

Déclarationpivot :Naturel

début sigaucheTableaux - p.17/23

Exemple...

Dans l'exemple précédent on passe de :<6,3,0,9,1,7,8,2,5,4>à <4,3,0,1,2,6,8,9,7>et on se relance sur : <4,3,0,1,2>et<8,9,7>

Tableaux - p.18/23

Complexité

Le tri par rapport au pivot nécessite de parcourir le tableau. On relance ensuite le processus sur les deux sous tableaux à gauche et à droite du pivot.

T(n) =n+T(p) +T(q)

p,qtaille des sous tableaux gauche et droits.

Dans le meilleur des casp=qet:

T(n) =n+ 2T(n

2)

Posonsn= 2p. On obtient :

T(p) = 2p+ 2T(p-1)

=p2p+ 2p En repassant enn:T(n) = log2(n).n+n. La complexité est donc en O(nlog2(n))(dans le meilleur des cas).Tableaux - p.19/23

Algorithmes de recherche

Recherche dans un tableau non trié.

fonctionrechercheNonTrie(tab : Tableau[0..MAX] d'Éléments, x :

Élément) :Naturel

Déclarationi : Naturel

début i←0 i←i+1 fintantque sii=MAX+1alors retournerMAX+1 finsi retourneri fin

Tableaux - p.20/23

Algorithmes de recherche

Recherche séquentielle dans un tableau trié. fonctionrechercheSeqTrie(tab : Tableau[0..MAX+1] d'Éléments, x : Élément) :Naturel

Déclarationi : Naturel

début i←0tab[MAX+1]←xtant quex>tab[i]faire i←i+1 fintantque retourneri fin

Tableaux - p.21/23

Algorithme de recherche

fonctionrechercheDicoTrie(tab : Tableau[0..MAX] d'Éléments, x : Élément) :

Naturel

Déclarationgauche,droit,milieu : Naturel

début gauche←0;droit←MAX milieu←(gauche+droit) div 2six=tab[milieu]alors retournermilieufinsi sixTableaux - p.22/23

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)>.et on renvoi l'indice de 101.

Tableaux - p.23/23

quotesdbs_dbs20.pdfusesText_26
[PDF] algorithme de tri par fusion

[PDF] algorithme de tri par insertion

[PDF] algorithme de tri par insertion d'un tableau

[PDF] algorithme de tri par insertion dichotomique

[PDF] algorithme de tri par insertion en c

[PDF] algorithme de tri par insertion en langage c

[PDF] algorithme de tri par insertion java

[PDF] algorithme de tri par insertion pdf

[PDF] algorithme de tri par sélection

[PDF] algorithme de tri par selection en c

[PDF] algorithme de tri par selection java

[PDF] algorithme de tri par selection pdf

[PDF] algorithme de tri par selection recursive

[PDF] algorithme de tri pdf

[PDF] algorithme de tri rapide