Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Sortiern nach Datum (strings)

  Alt 14. Jun 2010, 01:14
Noch besser wäre es m.E. so
1) Am Anfang n nicht auf die Länge des Arrays stellen, sondern auf den höchsten Index.
2) Das Senken von n um 1 nicht am Ende der Repeat-Schleife ausführen, sondern am Anfang.
3) Die For-Schleife von 0 bis n laufen lassen.
4) Beim Until nur swaped abfragen. Die Abfrage, ob n einen bestimmten Grenzwert erreicht hat, ist bei dieser Konstruktion überflüssig.

Delphi-Quellcode:
function bubbleSort( A : array of <Datentyp> ) : array of <Datentyp>;
begin
  n := High(A);
  repeat
    n := n - 1;
    swaped := false;
    for i := 0 to n do
      if Compare(A[ i ], A[ i + 1 ]) > 0 then
      begin
        // A[i] und A[i + 1] vertauschen
        swaped := true;
      end
  until not swaped;
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat