Einzelnen Beitrag anzeigen

Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#1

warum ist das Programm so langsam?

  Alt 19. Jan 2007, 14:34
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
  Mit Zitat antworten Zitat