Tri par tas
salut,
si vous savez comment resoudre le pb de tri par tas en pascal aidez moi SVP
si vous savez comment resoudre le pb de tri par tas en pascal aidez moi SVP
Configuration: Windows XP Firefox 2.0.0.11
1 réponse
-
salut,
J'ai essayé pour le tri par tas et j'ai trouvé cette solution mais ca marche pas svp de l'aide c'est urgent
procedure insertionTas(var t:tab;v:integer);
var i,p: integer ;
begin
n:=n+1;
t[n]:=v;
i:=n;
while (i<= 1) and (t[(i div 2)-1]<= v) do
begin
t[i]:=t[(i div 2)-1];
i:=(i div 2)-1;
end;
t[i]:=v;
end;
function supprimerMax(var t:tab;n:integer):integer;
var i,j,max,v:integer;
begin
max:=t[1];
t[1]:=t[n];
n:=n-1;
v:=t[1];
while (i<=(n div 1)) do
begin
j:=i+i;
if (j<n) and (t[j]<t[j+1] )
then j:=j+1;
t[i]:=t[j];
i:=j;
end;
t[i]:=v;
end;
procedure triParTas( var t:tab;n:integer);
var i:integer;
begin
for i:=1 to n do
begin
insertionTas(t,t[i]);
end;
for i:=n to 0 do
begin
t[i]:=supprimerMax(t,n);
end;
end;