Advertisement
feihung

Untitled

Dec 7th, 2014
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 0.93 KB | None | 0 0
  1. //*************************************************
  2. // Heap Sort
  3. //*************************************************
  4.  
  5. procedure HeapSort( var t : TabInt );
  6. var
  7.     i, j, k, l, tmp : integer;
  8. begin
  9.     GetTime(godz,min,sek,sek100);
  10.     t1 := sek100 + 100*sek + min*6000 + godz*360000;
  11.     for i := 2 to n do
  12.     begin
  13.         j := i;
  14.         k := i div 2;
  15.         tmp := t[i];
  16.         while ( ( k > 0 ) and ( t[k] < tmp ) ) do
  17.         begin
  18.             t[j] := t[k];
  19.             j := k;
  20.             k := j div 2;
  21.         end;
  22.         t[j] := tmp;
  23.     end;
  24.  
  25.     for i := n downto 2 do
  26.     begin
  27.         swap( t[1], t[i] );
  28.         j := 1;
  29.         k := 2;
  30.         while ( k < i ) do
  31.         begin
  32.  
  33.             if ( ( k+1 < i ) and ( t[k+1] > t[k] ) ) then
  34.             begin
  35.                 l := k + 1;
  36.             end else
  37.             begin
  38.                 l := k;
  39.             end;
  40.  
  41.             if ( t[l] <= t[j] ) then break;
  42.  
  43.             swap( t[j], t[l] );
  44.             j := l;
  45.             k := 2*j;
  46.  
  47.         end;
  48.     end;
  49.     GetTime(godz,min,sek,sek100);
  50.     t2 := sek100 + 100*sek + min*6000 + godz*360000;
  51.     ExecuteTime[4] := t2 - t1;
  52. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement