SlideShare uma empresa Scribd logo
1 de 3
Un algorithme de tri est une suite finie d'instructions servant à réordonner une séquence
d'éléments suivant un critère fixé à priori. Ce critère est en fait une relation d'ordre total
sur les éléments à trier.
Les algorithmes de tri que nous allons définir traitent des tableaux situés dans la mémoire
centrale.
Le tri par sélection
o Le tri à bulles
o Le tri par insertion
o Le tri par sélection

1.1. Le tri par sélection
Principe
Soit à trier un tableau de N cases, numérotés de 1 à N.
1. Chercher la position du plus petit élément du tableau.
2. L'échanger avec le contenu de la première case du tableau (case n°1)
3. Chercher la position du plus petit élément parmi les cases 2 à N
4. L'échanger avec le contenu de la deuxième case du tableau (case n°2)
Ainsi de suite, jusqu'à ne plus avoir de cases à explorer.
Remarquer qu'on constitue petit à petit "basse" du tableau triée.
Exemple 1

Function posmin(T:tab; i,n:integer):integer;
var
pm,j:integer;
begin
pm:=i;
For j:=i+1 to N do
begin
If T[j] < T[pm]
then
pm:=j;
end;
Posmin:=pm;
end;
Exemple 2

Procedure triselec (var T:tab; N:integer);
vari,p:integer;
1
begin
For i:=1 to N-1 do
begin
p:= posmin(t,i,n); {posmin du minimum dans T entre i et N}
if i<>p
then
permut (T[i],T[p]);
end;
end;
1.2. Le tri à bulles
Principe
1.Comparer le contenu des cases n°1 et 2
s’ils ne sont pas dans le bon ordre, les inverser.
2. Faire de même pour les cases n°2 et 3, 3et 4 .., et ainsi de suite jusqu'à (N-1 et N)
3. Si au moins une inversion a été effectuée, recommencer au début du tableau.
Les processus s'arrête lorsqu'au cours du "balayage' complet du tableau, aucune inversion
n'a été effectuée (on effectue donc toujours un "tour pour rien").
Exemple

procedure tribulle(var T:tab ; N:integer);
var
i: integer;
test: boolean;
begin
repeat
test:=false;
for i:=1 to n-1 do
begin
if t[i] > t[i+1] then
begin
permut (t[i] ,t[i+1]);
test:=true;
end;
end;
n:=n-1;
until test=false;
end;
1.3. Tri par insertion

Hypothèse:
On suppose que le tableau est partagé en: partie triée & non triéeet on ne sait rien sur la
partie non triée (au début de l'algo, la partie triée est vide).
Principe:
2
On prend le premier élément de la partie non triée et on l’insère à sa bonne place dans la
partie triée.
Exemple

Procedure insertion (var T:tab; N:integer);
var
i,j,tmp: integer;
begin
tmp:= t[i];
j:=i;
while (j>1) and (t[j-1]>tmp) do
begin
t[j]:= t[j-1];
j:=j-1;
end;
t[j]:= tmp;
end;
end;

3

Mais conteúdo relacionado

Destaque

Estrategia de Manzana
Estrategia de ManzanaEstrategia de Manzana
Estrategia de ManzanaIgnacio Rippa
 
Ramy_Nagaty_ABAP_MM_CV_new
Ramy_Nagaty_ABAP_MM_CV_newRamy_Nagaty_ABAP_MM_CV_new
Ramy_Nagaty_ABAP_MM_CV_newRamy Nagaty
 
best of home made Indian snack recipes
best of home made Indian snack recipesbest of home made Indian snack recipes
best of home made Indian snack recipeslee shin
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webCartagena, Bolivar
 
Le Matin - 19 mars 2008
Le Matin - 19 mars 2008Le Matin - 19 mars 2008
Le Matin - 19 mars 2008PresseMaroc
 
Practiques fisica 2n batx gener 2011
Practiques fisica 2n batx gener 2011Practiques fisica 2n batx gener 2011
Practiques fisica 2n batx gener 2011Natzaret
 
Mujeron
MujeronMujeron
MujeronSEEG
 
Sociedad De La InformacióN Y Del Conocimiento
Sociedad De La InformacióN Y Del ConocimientoSociedad De La InformacióN Y Del Conocimiento
Sociedad De La InformacióN Y Del Conocimientoguest5a81c9a
 

Destaque (9)

JBC1
JBC1JBC1
JBC1
 
Estrategia de Manzana
Estrategia de ManzanaEstrategia de Manzana
Estrategia de Manzana
 
Ramy_Nagaty_ABAP_MM_CV_new
Ramy_Nagaty_ABAP_MM_CV_newRamy_Nagaty_ABAP_MM_CV_new
Ramy_Nagaty_ABAP_MM_CV_new
 
best of home made Indian snack recipes
best of home made Indian snack recipesbest of home made Indian snack recipes
best of home made Indian snack recipes
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la web
 
Le Matin - 19 mars 2008
Le Matin - 19 mars 2008Le Matin - 19 mars 2008
Le Matin - 19 mars 2008
 
Practiques fisica 2n batx gener 2011
Practiques fisica 2n batx gener 2011Practiques fisica 2n batx gener 2011
Practiques fisica 2n batx gener 2011
 
Mujeron
MujeronMujeron
Mujeron
 
Sociedad De La InformacióN Y Del Conocimiento
Sociedad De La InformacióN Y Del ConocimientoSociedad De La InformacióN Y Del Conocimiento
Sociedad De La InformacióN Y Del Conocimiento
 

Semelhante a Le tri dans un tableau en algo

Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: TableauInforMatica34
 
Les algorithmes de recherche2017i
Les algorithmes de recherche2017iLes algorithmes de recherche2017i
Les algorithmes de recherche2017ijihen damerji
 
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).vangogue
 

Semelhante a Le tri dans un tableau en algo (6)

Coursasdch3
Coursasdch3Coursasdch3
Coursasdch3
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: Tableau
 
Les algorithmes de recherche2017i
Les algorithmes de recherche2017iLes algorithmes de recherche2017i
Les algorithmes de recherche2017i
 
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
 
Tp asm-3
Tp asm-3Tp asm-3
Tp asm-3
 

Le tri dans un tableau en algo

  • 1. Un algorithme de tri est une suite finie d'instructions servant à réordonner une séquence d'éléments suivant un critère fixé à priori. Ce critère est en fait une relation d'ordre total sur les éléments à trier. Les algorithmes de tri que nous allons définir traitent des tableaux situés dans la mémoire centrale. Le tri par sélection o Le tri à bulles o Le tri par insertion o Le tri par sélection 1.1. Le tri par sélection Principe Soit à trier un tableau de N cases, numérotés de 1 à N. 1. Chercher la position du plus petit élément du tableau. 2. L'échanger avec le contenu de la première case du tableau (case n°1) 3. Chercher la position du plus petit élément parmi les cases 2 à N 4. L'échanger avec le contenu de la deuxième case du tableau (case n°2) Ainsi de suite, jusqu'à ne plus avoir de cases à explorer. Remarquer qu'on constitue petit à petit "basse" du tableau triée. Exemple 1 Function posmin(T:tab; i,n:integer):integer; var pm,j:integer; begin pm:=i; For j:=i+1 to N do begin If T[j] < T[pm] then pm:=j; end; Posmin:=pm; end; Exemple 2 Procedure triselec (var T:tab; N:integer); vari,p:integer; 1
  • 2. begin For i:=1 to N-1 do begin p:= posmin(t,i,n); {posmin du minimum dans T entre i et N} if i<>p then permut (T[i],T[p]); end; end; 1.2. Le tri à bulles Principe 1.Comparer le contenu des cases n°1 et 2 s’ils ne sont pas dans le bon ordre, les inverser. 2. Faire de même pour les cases n°2 et 3, 3et 4 .., et ainsi de suite jusqu'à (N-1 et N) 3. Si au moins une inversion a été effectuée, recommencer au début du tableau. Les processus s'arrête lorsqu'au cours du "balayage' complet du tableau, aucune inversion n'a été effectuée (on effectue donc toujours un "tour pour rien"). Exemple procedure tribulle(var T:tab ; N:integer); var i: integer; test: boolean; begin repeat test:=false; for i:=1 to n-1 do begin if t[i] > t[i+1] then begin permut (t[i] ,t[i+1]); test:=true; end; end; n:=n-1; until test=false; end; 1.3. Tri par insertion Hypothèse: On suppose que le tableau est partagé en: partie triée & non triéeet on ne sait rien sur la partie non triée (au début de l'algo, la partie triée est vide). Principe: 2
  • 3. On prend le premier élément de la partie non triée et on l’insère à sa bonne place dans la partie triée. Exemple Procedure insertion (var T:tab; N:integer); var i,j,tmp: integer; begin tmp:= t[i]; j:=i; while (j>1) and (t[j-1]>tmp) do begin t[j]:= t[j-1]; j:=j-1; end; t[j]:= tmp; end; end; 3