{Programm, mis sorteerib arvujada Shelli sorteerimise algoritmi j„rgi} program ShellSort; uses crt; const arve=10; type massiiv = array[1..arve] of integer; procedure Vaheta(var a,b: integer); var c: integer; begin c:=a; a:=b; b:=c; end; var a:massiiv; i, j, k,l, samm: integer; sordit: boolean; {a - sorteeritav massiiv samm - le mitme elemendi parasjagu v“rreldakse ja vahetatakse k - teise v“rreldava elemendi koht sordit - kas massiiv on juba enne j„rgmist sammu sorteeritud} begin clrscr; randomize; writeln('Massiiv, mida hakatakse sorteerima:'); for i:=1 to arve do begin a[i]:=random(1000); write(a[i]:6); end; writeln; writeln('Sorteerimine:'); for l:=1 to arve do begin {Arvude sorteerimine} samm:=arve; while samm>1 do begin samm:=samm div 2; repeat sordit:= true; for i:=1 to arve-samm do begin k:=i+samm; if a[k] < a[i] then begin Vaheta(a[k],a[i]); sordit:=false; for j:=1 to arve do write(a[j]:5); writeln; end; end; until sordit; end; write(a[l]:6); end; readln; end.