Algorithme
Tri par insertion
 
Objectif : Ecrire un programme C# implémentant l'algorithme du tri par insertion.
 

Spécifications de l’algorithme :
 

Algorithme Tri_Insertion
 local:   i , j , n, v Π Entiers naturels
 Entrée : Tab Π Tableau d'Entiers naturels de 0 à n éléments
 Sortie : Tab Π Tableau d'Entiers naturels de 0 à n éléments
{ dans la cellule de rang 0 se trouve une sentinelle chargée d'éviter de tester dans la boucle tantque .. faire si l'indice j n'est pas inférieur à 1, elle aura une valeur inférieure à toute valeur possible de la liste
}
début
 pour i de2 jusquà n faire// la partie non encore triée (ai, ai+1, ... , an)
     v ¬ Tab[ i ] ;  // l'élément frontière : ai
     j ¬ i ;        // le rang de l'élément frontière
      Tantque Tab[ j-1 ] > v faire//on travaille sur la partie déjà triée (a1, a2, ... , ai)
              Tab[ j ]  ¬ Tab[ j-1 ]; // on décale l'élément
                j ¬ j-1;                 // on passe au rang précédent 
      FinTant ;
      Tab[ j ]  ¬ v //on recopie ai dans la place libérée
  fpour
Fin Tri_Insertion

Proposition de squelette de classe C# à implanter :
 
class ApplicationTriInsert   
 {

  static int[] table;  // le tableau à trier

  static void AfficherTable ( ) 
  {   // Affichage du tableau 
   ........
  }

  static void InitTable  ( ) 
  { // Initialisation du tableau 
    .........
  }

  static void TriInsert  ( ) 
  {   // sous-programme de Tri par insertion
    .........
   }

   static void Main(string[ ] args) 
   {
     InitTable ( );
     System.Console.WriteLine("Tableau initial :");
     AfficherTable ( );
     TriInsert  ( );
     System.Console.WriteLine("Tableau une fois trié :");
     AfficherTable ( );
     System.Console.Read();
   }
  }
 }

Remonter