AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein BubbleSort Vergleiche und Vertauschungen zählen
Thema durchsuchen
Ansicht
Themen-Optionen

BubbleSort Vergleiche und Vertauschungen zählen

Ein Thema von Kuonrat · begonnen am 4. Okt 2007 · letzter Beitrag vom 4. Okt 2007
Antwort Antwort
Kuonrat

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

BubbleSort Vergleiche und Vertauschungen zählen

  Alt 4. Okt 2007, 16: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
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: BubbleSort Vergleiche und Vertauschungen zählen

  Alt 4. Okt 2007, 16:45
Schreib doch einfach zwei Methoden für Swap und Compare.
Beide benötigen als Übergabeparameter die Indexwerte für A und B.
Wenn die du Zähler bsswap und bscompare innerhalb dieser Methoden erhöhst kann doch gar nichts mehr schiefgehen.
(Ausser du hast vergessen die Zähler vor dem Sortieren auf 0 zu setzen)
Schau mal hier, da wird gezeigt, wie man es OOP like macht.
Andreas
  Mit Zitat antworten Zitat
Kuonrat

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

Re: BubbleSort Vergleiche und Vertauschungen zählen

  Alt 4. Okt 2007, 17:47
Woah super. Die werde ich erstmal durcharbeiten, danke!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz