M1103 – TD1 – Exercice 1

Ecrire la procédure TriSelection () de signature
[Algo]
procedure TriSelection (TabInt : in_out tableau de entier);
[/Algo]

Ce sous-programme doit trié le tableau TabInt selon la méthode du tri par sélection / échange.

Ecrire dans un second temps un autre sous-programme qui vérifie que le tableau qui lui est passé en paramètre est trié.

M1103-TD1 Exercie1 Corrigé

[algo]procedure TriSelection (TabInt : in_out tableau_de entier)
debut
pour (i variant_de 0 a taille(TabInt) – 1)
faire
declarer min : entier_naturel;
min <- i;
pour (j variant_de i + 1 a taille(TabInt) – 1)
faire
si (TabInt[j] < TabInt[min])
min <- j;
fsi
ffaire
si (min ne_vaut_pas i)
PermuterEntier (TabInt[i], TabInt[min]);
fsi
ffaire
fin[/algo]

M1103-TD1 Exercie2 Corrigé

[Algo]
procedure TriInsertion (TabInt : in_out tableau_de entier)
debut
pour (i variant_de 1 a taille(TabInt) – 1)
faire
declarer x : entier;
x <- TabInt [i];
declarer j : entier_naturel;
j <- i;

tant_que ((j > 0) ET_ALORS (TabInt[j – 1] > x))
faire
TabInt[j] <- TabInt[j – 1];
j <- j – 1;
ffaire

TabInt[j] <- x;
ffaire
fin
[/Algo]

M1103-TD1 Exercie3 Corrigé

[Algo]
procedure TriBulles (TabInt : in_out tableau_de entier)
debut
pour (i variant_de taille(TabInt) – 1 a 1 descendant)
faire
pour (j variant_de 0 a i – 1)
faire
si (TabInt[j+1] < TabInt[j])
PermuterEntier (TabInt[j+1], TabInt[j]);
fsi
ffaire
ffaire
fin
[/Algo]