SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Andere mochten auch

Estrategia de Manzana
Estrategia de ManzanaEstrategia de Manzana
Estrategia de Manzana
Ignacio Rippa
 
Ramy_Nagaty_ABAP_MM_CV_new
Ramy_Nagaty_ABAP_MM_CV_newRamy_Nagaty_ABAP_MM_CV_new
Ramy_Nagaty_ABAP_MM_CV_new
Ramy Nagaty
 
Practiques fisica 2n batx gener 2011
Practiques fisica 2n batx gener 2011Practiques fisica 2n batx gener 2011
Practiques fisica 2n batx gener 2011
Natzaret
 
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
guest5a81c9a
 

Andere mochten auch (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
 

Ähnlich wie 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