Procedure ShellSort(var v:vetor;tam:integer); var h: array [1..4] of integer; g,s,z,e,i,j: integer; d : integer; begin h[1]:=9; h[2]:=5; h[3]:=3; h[4]:=1; for s:=1 to 4 do begin z:= h[s]; for e:=1 to z do begin i:= e+z; while i <= tam do begin g:= v[i]; j:= i-z; while ( g < v[j] ) and (j > z-e) do begin v[j+z]:=v[j]; j:=j-z; end; v[j+z]:=g; i:=i+z; end; end; end; end;