|
Un bubblesort nei due sensi... procedure SHAKERSORT(Var V: Vettore; N: Integer);
Var
Inizio, Fine, Ultimo, i: Integer;
begin
Inizio:=1;
Fine:=N-1;
Ultimo:=N-1;
while(Inizio <= Fine) do
begin
for i:=Inizio To Fine do
if(V[i] > V[i+1]) then
begin
SCAMBIA(V[i], V[i+1]);
Ultimo:=i;
end;
Fine:=Ultimo-1;
for i:=Fine DownTo Inizio do
if(V[i] > V[i+1]) then
begin
SCAMBIA(V[i], V[i+1]);
Ultimo:=i;
end;
Inizio:=Ultimo+1;
end;
end; |
|