program HeatSort; {$R+} {$O-} {$APPTYPE CONSOLE} uses SysUtils; var today : TDateTime; var n,i,hs,s,y:longint; h,a: packed array[1..100000000] of integer; procedure siftup(i:longint); begin if i=1 then exit; if h[i]i then begin y:=h[s]; h[s]:=h[i]; h[i]:=y; siftdown(s); end; end; procedure Delete(i:longint); begin h[i]:=h[hs]; dec(hs); siftdown(i); end; procedure Add(x:longint); begin inc(hs); h[hs]:=x; siftup(hs); end; begin hs:=0; writeln('n='); readln(n); randomize; for i:=1 to n do a[i]:=100-random(200); // for i:=1 to n do write(a[i],' '); writeln; today := Time; writeln('Time 1 = '+TimeToStr(today)); for i := 1 to n do add(a[i]); for i := 1 to n do begin a[i]:=h[1]; Delete(1); end; // for i := 1 to n do write(a[i],' '); today := Time; writeln('Time 2 = '+TimeToStr(today)); readln; end.