Skip to content
Snippets Groups Projects
Commit 13e85559 authored by paul.albuquer's avatar paul.albuquer
Browse files

pseudocode for stack sort

parent 76e6a7e6
No related branches found
No related tags found
No related merge requests found
Pipeline #14887 passed
type Array_Int; // type tableau d'entiers à 1 dimension
type Pile_Int; // type pile d'entiers
// Retourne "a < b" si <op> = "<", "a >= b" si <op> = ">=",
// "true" si <op> = "" et "false" sinon
function condition(a,b : Integer; op : String) return Boolean;
// Transfère les éléments de <pile_1> à <pile_2>
// tant que condition(sommet(pile_1),val,op) est vrai
procedure transfert(pile_1, pile_2 : Pile_Int;
val: Integer; op : String);
// Trie à l'aide de 2 piles
procedure trier(tab : Array_Int)
pile_g,pile_d : Pile_Int;
begin
// parcourt le tableau <tab>
for i in 0..tab.length loop
// transfère les éléments de <pile_g> à <pile_d>
// tant que sommet(pile_g) < tab[i]
transfert(pile_g,pile_d,tab[i],"<");
// transfère les éléments de <pile_d> à <pile_g>
// tant que sommet(pile_d) >= tab[i]
transfert(pile_d,pile_g,tab[i],">=");
// empile l'élément <tab[i]> dans <pile_g>
empiler(pile_g,tab[i]);
end loop;
// transfère tous les éléments de <pile_d> à <pile_g>
transfert(pile_d,pile_g,0,"");
// transfère tous les éléments de <pile_g> dans <tab>
for i in 0..tab.length loop
depiler(pile_g,tab[i]);
end loop;
end Trier;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment