Tri par tas
Fermé
offa
Messages postés
21
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
23 avril 2008
-
25 janv. 2008 à 11:48
offa Messages postés 21 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 23 avril 2008 - 27 janv. 2008 à 22:14
offa Messages postés 21 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 23 avril 2008 - 27 janv. 2008 à 22:14
A voir également:
- Tri par tas
- Excel trier par ordre croissant chiffre - Guide
- Logiciel de tri de photos - Guide
- Colis rejeté par le centre de tri aliexpress - Forum Consommation & Internet
- En cours de traitement sur le site de tri local ✓ - Forum Consommation & Internet
- Triez ce tableau par ordre alphabétique des prénoms - Forum LibreOffice / OpenOffice
1 réponse
offa
Messages postés
21
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
23 avril 2008
8
27 janv. 2008 à 22:14
27 janv. 2008 à 22:14
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;
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;