Das hier sollte am schnellsten sein (bzw. am wenigsten Vergleiche benötigen);
Delphi-Quellcode:
procedure NetworkSort;
procedure SwapIfLess(i, j: Integer);
var h: Integer;
begin
if a[i] > a[j] then begin
h := a[i]; a[i] := a[j]; a[j] := h;
end
end;
begin
SwapIfLess(0, 1);
SwapIfLess(2, 3);
SwapIfLess(0, 2);
SwapIfLess(1, 3);
SwapIfLess(1, 2);
end;
Vielleicht wird es schneller, wenn man die 5 Vergleich/Swap-Operationen auskodiert.
Das ist übrigens ein "Sorting Network".