Objectif : Ecrire un programme C# implémentant l'algorithme du tri par sélection.
Spécifications de l’algorithme :
Algorithme Tri_Selection
local: m, i , j , n, temp Î Entiers naturels
Entrée : Tab Î Tableau d'Entiers naturels de 1 à n éléments
Sortie : Tab Î Tableau d'Entiers naturels de 1 à n élémentsdébut
pour i de 1 jusquà n-1 faire // recommence une sous-suite
m ¬ i ; // i est l'indice de l'élément frontière ai = Tab[ i ]
pour j de i+1 jusquà n faire // (ai+1, a2, ... , an)
si Tab[ j ] < Tab[ m ] alors // aj est le nouveau minimum partiel
m ¬ j ; // indice mémorisé
Fsi
fpour;
temp ¬ Tab[ m ] ;
Tab[ m ] ¬ Tab[ i ] ;
Tab[ i ] ¬ temp //on échange les positions de ai et de aj
fpour
Fin Tri_Selection
Proposition de squelette de classe C# à implanter :
class ApplicationTriSelect
{static int[] table; // le tableau à trier
static void AfficherTable ( )
{ // Affichage du tableau
........
}static void InitTable ( )
{ // Initialisation du tableau
.........
}static void TriSelect ( )
{ // sous-programme de Tri par sélection
.........
}static void Main(string[ ] args)
{
InitTable ( );
System.Console.WriteLine("Tableau initial :");
AfficherTable ( );
TriSelect ( );
System.Console.WriteLine("Tableau une fois trié :");
AfficherTable ( );
System.Console.Read();
}
}
}