![]() |
Bubble Sort
Hi Leute!
Ich will 10 gewürfelte zahlen von 1 bis 50 nach Bubble Sort sortieren. Allerdings dreht er bei mir dabei nur die Reihenvolge der Zahlen um. Wenn ich die Sache mit dem Debugger angehe zeigt er mir an, dass "s" nicht angezeigt werden kann,wegen Optimierung... kann mir jemand weiterhelfen? Hier ist der zugehörige Quellcode:
Delphi-Quellcode:
procedure tauschen(var x, y: integer);
var hilf: integer; begin hilf:= x; x:= y; y:= hilf; end; procedure TForm1.Button2Click(Sender: TObject); var i, x : integer; begin for i := 1 to 10 do begin x:= random(50); a[i]:= x; Listbox1.Items.add(IntToStr(a[i])); end; end; procedure TForm1.Button1Click(Sender: TObject); var n, s: integer; begin for n:= 10 downto 1 do begin for s:= 0 to n-1 do begin if a[s] > a[s]+1 then tauschen(a[s], a[s+1]); end; Listbox2.items.Add(IntToStr(a[n])); end; end; |
AW: Bubble Sort
Delphi-Quellcode:
:lol:
if a[s] > a[s]+1
then tauschen(a[s], a[s+1]); Warning (E1337): If-Bedingung ergibt immer false. Unerreichbarer Code wurde entdeckt! |
AW: Bubble Sort
hmm warum soll die iff function immer false sein?
kann ich leider nicht nachvollziehen, sry! |
AW: Bubble Sort
Naja, an der Stelle s in dem Array a steht ein bestimmter Wert. Als Beispiel nehmen wir mal 20.
Das eingesetzt ergibt:
Delphi-Quellcode:
Weiter vereinfacht:
if 20 > 20+1
then tauschen(a[s], a[s+1]);
Delphi-Quellcode:
Und nun die Frage: Ist 20 größer als 21?
if 20 > 21
then tauschen(a[s], a[s+1]); |
AW: Bubble Sort
ahhh!
war ein schreibfehler! sollte heißen:
Delphi-Quellcode:
danke viehlmals^^
if a[s] > a[s+1]
then tauschen(a[s], a[s+1]) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 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