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

pseudocode for stack sort

parent 76e6a7e6
Branches
Tags
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