Académique Documents
Professionnel Documents
Culture Documents
FinPour n :entier)
FIN Tri_Bulles Résultat= [ ] Pour i de 2 à n faire
[] Si ( pos_min < > i)Alors
Permute(T[i], T[Pos_min]) Tmp T[i]
Finsi [ji]
Analyse de la procédure Permute : Tant que ( j >1) et ( T[j-1] > Tmp ) faire
FinPour
FIN Tri_Selection DEF Proc Permute ( VAR A, B :entier) T[j ] T[j-1]
Résultat= AUX A j j - 1;
Analyse de la procédure Permute :
AB FinTantQue
DEF Proc Permute ( VAR A, B :entier)
BAUX T[j ] Tmp
Résultat= AUX A
FinPour
AB FIN Permute
BAUX FIN Tri_Insertion
FIN Permute Analyse de la procédure Afficher:
Analyse de la procédure Afficher:
Analyse de la procédure Afficher: DEF Proc Afficher ( T :Tab ;n :entier)
DEF Proc Affiche ( T :Tab ;n :entier) Résultat= Pour i de 1 à n faire DEF Proc Afficher ( T :Tab ;n :entier)
Résultat= [] Pour i de 1 à n faire Ecrire(" l’élément n° ",i, "est " ,T[i]) Résultat= Pour i de 1 à n faire
Ecrire(" l’élément n° ",i, "est " ,T[i]) FinPour Ecrire(" l’élément n° ",i, "est " ,T[i])
FinPour FinPour
FIN Afficher FIN Afficher
FIN Afficher
Tri par sélection : Tri à bulles : Tri par insertion :
program insertion;
program selection; program bulles; uses wincrt;
uses wincrt; uses wincrt; const n=9;
const n=9; const n=9; type
type tab=array[1..n]of integer; type tab=array[1..n]of integer; tab=array[1..n]of integer;
var var var
t:tab; t:tab; t:tab;
procedure remplir(var T:tab;n:integer); procedure remplir(var T:tab;n:integer);
var i:integer; var i:integer;
begin begin procedure remplir(var T:tab;n:integer);
randomize; randomize; var i:integer;
for i:=1 to n do for i:=1 to n do begin
t[i]:=random(101); t[i]:=random(101); randomize;
end; end; for i:=1 to n do
t[i]:=random(101);
procedure permute (var A,B:integer); procedure permute (var A,B:integer); end;
var Aux:integer; var Aux:integer;
begin begin
aux:=A; Procedure Tri_Insertion(var t:tab;n: integer);
aux:=A; var i, j, tmp : integer;
A:=B; A:=B;
B:=aux; begin
B:=aux; for i:=2 to n do
end; end;
function premposmin(t:tab;i:integer;n:integer):integer; begin
var j,posmin:integer; procedure tri_bulles(var t:tab; n:integer); tmp := t[i];
begin var i:integer;echange :boolean ;
posmin:=i; begin j := i;
for j:=i+1 to n do while (j > 1) and (t[j-1] > tmp) do
if t[j]<t[posmin] then posmin:=j; repeat begin
premposmin:=posmin; echange :=false ; t[j] := t[j-1];
end; for i :=1 to n-1 do j := j - 1;
begin end;
procedure tri_selction(var t:tab; n:integer);
var i,ppm:integer; if ( T[i] > T[i+1]) then
Devoirs et examens sur : www.Kiteb.net