Hy Community
Wir sollten in der Schule Heapsort Programmieren, und das Hier ist nun Mein Programm.
Delphi-Quellcode:
procedure genheap(f:ftype;Heap:integer);
var i,temp,j,k:integer;
begin
for k:=1 to Heap div 2 do
begin
for i:=1 to Heap div 2 do
begin
if (f[i]<f[i*2]) then
begin
temp:=f[i];
f[i]:=f[i*2];
f[i*2]:=temp;
end;
if (f[i]<f[i*2+1]) and (i*2+1<Heap)then
begin
temp:=f[i];
f[i]:=f[i*2+1];
f[i*2+1]:=temp;
end;
end;
end;
end;
procedure heapsort(f:ftype;n:integer);
var i:integer;
begin
if n>0 then
begin
genheap(myarray,n);
for i:=1 to n do
myarray[i-1]:=myarray[i];
myarray[n]:=myarray[0];
heapsort(myarray,n-1);
end;
end;
Nun läuft mein Programm extrem Langsam, und ich weiss nicht warum.
Bei anderen Dauert das sortieren von 4000 Werten ca 0,6 Sekunden, und bei mir ganze 35 s
Woran kann das liegen? wir arbeiten in der Schule alle an Gleichen Rechnen, sodass das wegfällt.
Was könnte ich noch optimieren? wo habe ich Fatale geschwindigkeitsbremsen eingebaut?
Danke schonmal