Tri par tas

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
Configuration: Windows XP
Firefox 2.0.0.11

1 réponse

  1. offa Messages postés 21 Statut Membre 8
     
    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;
    0