Procedure ShakerSort(var v:vetor;tam:integer); var l,r,k,j,x : integer; begin l := 2; r := tam; k := tam; repeat for j := r downto l do begin if v[j-1] > v[j] then begin x := v[j-1]; v[j-1] := v[j]; v[j] := x; k := j; end end; l := k+1; for j := l to r do begin if v[j-1] > v[j] then begin x := v[j-1]; v[j-1] := v[j]; v[j] := x; k := j; end end; r := k-1; until l > r; end;