Erreur tri rapide
salut,
pouvez-vous me dire ce quoi l'erreur de ce programme qui permet de trier un tableau avec la méthode de tri rapide (Quick sort)
j'essayer d'exécuter ce programme mais l'exécution se bloque!!!!!!!il y a une errreur qui une erreur qui m'a fait déchirer les chéveux.
voici le code:
pouvez-vous me dire ce quoi l'erreur de ce programme qui permet de trier un tableau avec la méthode de tri rapide (Quick sort)
j'essayer d'exécuter ce programme mais l'exécution se bloque!!!!!!!il y a une errreur qui une erreur qui m'a fait déchirer les chéveux.
voici le code:
program trirapide;
uses wincrt;
type
tab=array[1..20]of integer;
var
t:tab;
n:integer;
{****************************************}
procedure saisie(var n:integer;var t:tab);
var
i:integer;
begin
repeat
write('n = ');readln(n);
until n>=10;
randomize;
for i:=1 to n do
t[i]:=random(30);
end;
{****************************************}
procedure affiche(n:integer;t:tab);
var
i:integer;
begin
for i:=1 to n do
write(t[i]:4);
end;
{****************************************}
procedure tri_rapide(var t:tab;g,d:integer);
var
i,j,aux:integer;
begin
if g<d then
begin
i:=g+1;j:=d;
repeat
while (i<j)and(t[i]<t[g]) do
i:=i+1;
while (i<=j)and(t[j]>=t[g]) do
j:=j-1;
if i<j then
begin
aux:=t[i];
t[i]:=t[j];
t[j]:=aux;
end;
until i>j;
aux:=t[j];
t[j]:=t[g];
t[g]:=aux;
tri_rapide(t,g,j-1);
tri_rapide(t,j+1,d);
end;
end;
{****************************************}
begin
saisie(n,t);
writeln('les éléments avant TRI : ');
affiche(n,t);
tri_rapide(t,1,n);
writeln('les éléments après TRI : ');
affiche(n,t);
end.