AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

BubbleSort1 vs. BubbleSort2

Ein Thema von Bjoerk · begonnen am 1. Jul 2011 · letzter Beitrag vom 11. Jul 2011
 
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#8

AW: BubbleSort1 vs. BubbleSort2

  Alt 2. Jul 2011, 11:24
Hier mal ein Screenshot aus meiner Testsoftware:
Sort.png
Die hier gezeigte BubbleSort-Implementation ist die zweite, also die schnellere.
Die Ausführungszeit sollte man hier mal vernachlässigen, die ist nur mit GetTickCount gemessen und bei der kurzen Zeit natürlich nicht aussagekräftig.
Interessant ist eher "Zwei Elemente verglichen", hier ist InsertSort im Durchschnitt eben doppelt so schnell wie BubbleSort - und dafür ist der Code nicht komplizierter.

Der von Uwe Raabe gepostete Quelltext ist jedoch KEIN InsertSort, da er die innere Schleife immer komplett durchläuft, genau wie BubbleSort.
Mein Code ist ggf. etwas verwirrend, er ist halt aus meiner Testsoftware:
Delphi-Quellcode:
class procedure TCtInsertSort.Sort(AList: TCtSortTestList; ASorter: TCtSort);
var
  I, J: Integer;
begin
  For I := 1 to AList.Count - 1 do
  begin
    J := I;
    While (J > 0) and ASorter.DoCompare(AList[J - 1], AList[J]) do
    begin
      AList.Exchange(J - 1, J);
      Dec(J);
    end;
  end;
end;
Wie man hier sieht, wird die innere Schleife abgebrochen, sobald ASorter.DoCompare einmal false zurück liefert. (ASorter.DoCompare liefert false zurück, wenn das erste Element kleiner-gleich dem zweiten ist.)
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
 


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 07:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz