Meinst Du im Ernst, das 6 Vergleiche (SelectionSort3) schneller sind als 5 Vergleiche (NetworkSort)?
Ich schrieb doch, das man das vielleicht auskodieren müsste bzw. als Inline deklarieren muss.
Auskodiert sähe es so aus:
Delphi-Quellcode:
procedure NetworkSort;
Var
T : Byte;
begin
if A[0] > A[1] then begin T:= A[0]; A[0]:= A[1]; A[1]:= T; end;
if A[2] > A[3] then begin T:= A[2]; A[2]:= A[3]; A[2]:= T; end;
if A[0] > A[2] then begin T:= A[0]; A[0]:= A[2]; A[2]:= T; end;
if A[1] > A[3] then begin T:= A[1]; A[1]:= A[3]; A[3]:= T; end;
if A[1] > A[2] then begin T:= A[1]; A[1]:= A[2]; A[2]:= T; end;
end;
Und wenn das nicht das SelectionSort3 mit 6 Vergleichen schlägt, fress ich nen Besen.
Das wäre dann wohl doch etwas mit Kanonen auf Spatzen geschossen.
Und verdammt langsam außerdem (in diesem Fall). Die vier Bytes muss man ja schließlich auch noch einsammeln.
Warum 5, wenns auch mit 4 geht??
(Oder verstehe ich da etwas falsch?)
Musste wohl. Woher nimmst du denn die vier Vergleiche?