TRI Fusion

Voir le sujet précédent Voir le sujet suivant Aller en bas

TRI Fusion

Message  Ilyes KHAILI le Jeu 15 Jan - 0:42

Salut cheers
voici une méthode de tri fusion
uses wincrt;
type tab=array[1..100]of integer;
var
t:tab;
n:integer;


procedure saisie(var t:tab;var n:integer);
var
i:integer;
begin
write('Donner n = ');readln(n);
randomize;
for i:=1 to n do
t[i]:=random(100);
end;
procedure affiche(t:tab;n:integer);
var
i:integer;
begin
for i:=1 to n do
writeln('t[',i,']=',t[i]);
end;




PROCEDURE tri_fusion(var M:tab;d,f:integer);
VAR
mil:integer;

PROCEDURE fusionner(var M:tab;d,mil,f:integer);
VAR
P:tab;
i,j,k,l:integer;
BEGIN
i:=d;
j:=mil+1;
k:=d;
while (i<=mil) and (j<=f) do
begin
if M[i]<M[j] then
begin
P[k]:=M[i];
i:=i+1;
end
else
begin
P[k]:=M[j];
j:=j+1;
end;
k:=k+1;
end;
if (i>mil) then
for l:=j to f do
begin
P[k]:=M[l];
k:=k+1;
end
else
for l:=i to mil do
begin
P[k]:=M[l];
k:=k+1;
end;
for l:=d to f do
M[l]:=P[l];
END;

BEGIN
if (d<f) then
begin
mil:=(d+f) div 2;
tri_fusion(M,d,mil);
tri_fusion(M,mil+1,f);
fusionner(M,d,mil,f);
end;
END;


begin
saisie(t,n);
writeln('Le tableau non trié');
affiche(t,n);
writeln;
writeln('Le tableau trié');
tri_fusion(t,1,n);
affiche(t,n);
end.

Ilyes KHAILI

Messages : 24
Date d'inscription : 13/11/2008
Age : 27

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re

Message  Saafi RAMI le Jeu 15 Jan - 22:34

Merci ILyes c'est super .
avatar
Saafi RAMI

Messages : 37
Date d'inscription : 16/10/2008
Age : 27

Voir le profil de l'utilisateur http://www.imraude.skyrock.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum