Les tris élémentaires en Pascal

On désigne par "tri" l'opération consistant à ordonner un ensemble d'éléments en fonction de clés sur lesquelles est définie une relation d'ordre. Les algorithmes de tri ont une grande importance pratique. Ils sont fondamentaux dans certains domaines, comme l'informatique de gestion où l'on tri de manière quasi-systématique des données avant de les utiliser.
Dans la suite, je vais donner l'implémentation en Pascal des tris élémentaires à savoir le tri à bulles, le tri par insertion et le tri par sélection.

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Tri à bulles

 
Sélectionnez

  PROCEDURE  permuter(var t : tab ;indice1 :integer ;indice2 :integer);
  Var
   aux :integer ;

  Begin
	Aux := t[indice1] ;
  	t[indice1] :=t[indice2] ;
  	t[indice2] :=aux ;
  end ;

  PROCEDURE tri_bulle(var t: tab; n:integer);
  var
    i,j, aux:integer;

  begin
   for i:= n downto 1 do
   for j:= 1 to i-1 do
    if(t[j]	< t[j+1] ) then
  	permuter(t,j,j+1);

  end;

II. Tri par insertion

 
Sélectionnez

  PROCEDURE permuter(var t : tab ;indice1 :integer ;indice2 :integer) ;
  Var
  aux :integer ;

  Begin
	Aux := t[indice1] ;
	t[indice1] :=t[indice2] ;
	t[indice2] :=aux ;
  end ;

  PROCEDURE tri_insertion(var t :tab ; n :integer)
  Var
     i ,k: integer ;

  Begin
   For i:= 2 to n do
    Begin
    k:=i;
       while (( k > 1 ) and ( t[k] < t[k-1] ) ) do
         begin
            permuter(t,k,k-1);
            k :=k-1;
         end;
    end ;
  end;    

III. Tri par sélection

 
Sélectionnez

  PROCEDURE permuter (var t : tab ;indice1 :integer ;indice2 :integer);
  Var
  aux :integer ;
  
  Begin
	Aux := t[indice1] ;
	t[indice1] :=t[indice2] ;
	t[indice2] :=aux ;
  End ;


  FUNCTION recherche_position_min(t : tab ;i :integer ) :integer ;
  var
  min ,j:integer ;
  
  begin
  posMin:=i;
  for j:=i+1 to n do
    if(  t[j] < t[posMin]) then
      posMin:=j;

   recherche_position_min := posMin ;
  end ;


  PROCEDURE tri_selection(VAR t :tab) ;
  Var
  i , Indice_Minimum : integer :
  begin
     For i :=1 to n do
       Begin
          Indice_Minimum := recherche_position_min(t,i);
          permuter(t,i,Indice_Minimum);
       end;
  end;  

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+