![]() |
Fehler im Bubblesortcode?
Guten Abend,
ich habe ein Integerarray[0..3], welches nach Größe abnehmend sortiert werden soll. Bei einem Testlauf haben alle Elemente bevor der folgende Code ausgeführt wird den Zahlenwert 0. Hinterher hat das zweite Element (Index 1) allerdings den Wert 4. Ich komme einfach nicht dahinter wieso das so ist...
Delphi-Quellcode:
Wo ist mein Fehler? Hoffe ihr könnt mir weiterhelfen..
b:= 0;
repeat for a:= 0 to 3 do begin if Array_Temp[a] < Array_Temp[a+1] then begin SwapTemp:= Array_Temp[a]; Array_Temp[a]:= Array_Temp[a+1]; Array_Temp[a+1]:= SwapTemp; end; end; Inc(b); until b= 3; Grüße [edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit] |
Re: Fehler im Bubblesortcode?
Zitat:
Richtig ist natürlich, daß Bubblesort aus zwei Schleifen besteht, einer inneren und einer äußeren. Da deren Durchlaufanzahl jedoch determiniert (=vorherbestimmt) ist, sind zwei for-Schleifen eigentlich günstiger und logischer. Desweiteren läuft die innere Schleife bis 3, ein Element wird jedoch mit a+1, also mit 4 indiziert - und das, obwohl das Array nur bis 3 läuft. In diesem Forum findet sich genug zu diversen Sortieralgorithmen und natürlich auch Bubblesort. Auch meine Wenigkeit veröffentlichte mal ein Sortiervisualisierungsprogramm, in dem Bubblesort als elementarer Sortieralgorithmus enthalten ist. |
Re: Fehler im Bubblesortcode?
Schönen guten Morgen,
BubbleSort habe ich irgendwie so (wie unten gezeigt) in Erinnerung. Warum verwendest Du (Sie) ein "repeat ... until" darin!? :-)
Delphi-Quellcode:
Mit freundlichen Grüßen
const amax = 3;
var Carray : array[0..amax] of integer; a, b : integer; ... Carray wird mit Werten gefüllt ... for a:=0 to amax-1 do for b:=a+1 to amax do if Carray[a] < Carray[b] then Swap_Carray(a,b); // austauschen der Inhalte an den Positionen a und b Manfred Zenns |
Re: Fehler im Bubblesortcode?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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 by Thomas Breitkreuz