Tri par tas
offa
Messages postés
21
Statut
Membre
-
offa Messages postés 21 Statut Membre -
offa Messages postés 21 Statut Membre -
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;