Einzelnen Beitrag anzeigen

Kuonrat

Registriert seit: 27. Okt 2006
Ort: Berlin
33 Beiträge
 
#1

BubbleSort Vergleiche und Vertauschungen zählen

  Alt 4. Okt 2007, 17:16
Ich möchte bei BubbleSort zu einem Zählen, wieviele Vergleiche getätigt werden unter den Zahlen, sowie die eigentlichen Vertauschungen die vorgenommen wurden

Delphi-Quellcode:
procedure TFach.BubbleSort;
var done: boolean;
var i, Dummy, bscompare, bsswap : integer; // <---
begin


bscompare := 0; // <---
bsswap := 0; // <---

 repeat
   done := true;
   for i := 0 to Number - 2 do
    begin
     inc(bscompare); // <---
     if Items[i] > Items[i + 1] then
       begin
       Dummy := Items[i];
       Items[i] := Items[i + 1];
       Items[i + 1] := Dummy;

       inc(bsswap); // <---
       setSwap(bsswap); // <---

       done := false;
       end;
    end;
 until done;

setCompare(bscompare);

end;
Die Ergebnisse sind nur leider mehr als unverständlich, zumindestens für mich. Z.B. generiere ich zufällig 100 Zahlen und sortiere sie mit dieser Prozedur. Das Ergebniss Vergleiche=98 und Vertauschungen=2562. Weder das eine noch das andere ist richtig. Zumal bei vergleiche sowieso immer Anzahl der generierten Zahlen - 2 ist.
Hat jemand eine Idee worand as liegen könnte? Komme bei dieser Fummelarbeit nicht vorwärts und hoffe vorallem das es nur an dieser Prozedur liegen kann.

MfG Kuonrât
  Mit Zitat antworten Zitat