All pastes #938188 Raw Edit

Someone

public text v1 · immutable
·published 2008-03-11 13:09 UTC
rendered paste body
program scalanie;

{$APPTYPE CONSOLE}

uses
 SysUtils,windows;

var
n,i,j,k,z:longint;
T,S:array[1..1000000] of Longint;
Timestart,Timestop,Freq:Int64;
czas:extended;


procedure MergeSort(start,stop:longint);
var
sr:Longint;


procedure Scal(start,stop,sr:longint);
 begin
  for i:=start to stop do
  S[i] := T[i];

  i := start; j := sr+1; k := start;
  while (i <= sr) and (j <= stop) do
  begin
  if S[i] < T[j] then
   begin
     T[k] := S[i];
     i := i+1;
     k:=k+1;
   end
   else
     begin
       T[k] := S[j];
       j := j+1;
       k:=k+1;
     end
  end;

   for j:=i to sr do
   begin
     T[k]:=S[j];
     k:=k+1;
   end;
   end;
BEGIN

 if start < stop then
     begin
       sr := (start+stop) div 2;
       MergeSort(start,sr);
       MergeSort(sr+1,stop);
       Scal(start,stop,sr);
     end;
end;



begin

readln(n);
for i:=1 to n do
T[i]:=random(100);
if QueryPerformanceFrequency(Freq) then
QueryPerformanceCounter(tIMEsTART);
MergeSort(1,n);
QueryPerformanceCounter(timestop);
Writeln('Czas');
Writeln(((timestop-timestart)/FREQ*1000) : 0 : 5);
readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.