program bubble_sort_test; (* Sortieren von 5000 word's *)
uses crt,dos;
const maxN = 5000;
var a : array[1..maxN] of word;
N : integer;
procedure bubble;
var k,l : integer;
t : word;
begin
for k:=N downto 1 do
for l:=2 to k do
if a[l-1]>a[l] then begin
t:=a[l-1];
a[l-1]:=a[l];
a[l]:=t;
end;
end;
procedure read_array_von_datei( datei :string);
var dat : file of word;
i : integer;
begin
assign(dat,datei);
reset(dat);
i:=0;
if not eof(dat) then
repeat
i:=i+1;
read(dat,a[i]);
until eof(dat);
N:=i;
close(dat);
end;
procedure print_array(ab : integer);
var k:integer;
begin
for k:=ab to N do write(a[k],' ');
writeln('*** ende *** ');
end;
var h,m,s,s1 : word;
begin
clrscr;
writeln(' *** Bubble Sort : Test auf Zeitverhalten *** ');
writeln;writeln;
writeln('Jetzt werden die 5000 Zahlen eingelesen . ');
writeln;writeln;
read_array_von_datei('sorting.int');
N:=3000;
clrscr;
writeln('Fertig . Jetzt erfolgt das Sortieren ! ');
writeln;
gettime(h,m,s,s1);
writeln('Anfang : ',h, ':' ,m, ':' ,s, '.' ,s1 );
bubble; writeln;
gettime(h,m,s,s1);
writeln('Ende : ',h, ':' ,m, ':' ,s, '.' ,s1 ); writeln;
print_array(N-150+1); readln;
end.