|
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; |
|