![]() |
Algo sortiert falsch
Hi Leute,
ich hab mir mit Hilfe des Tuts aus der Code-Lib die folgende procedure gebastelt. Es soll eine Zeile sortiert werden (deshalb heißt der Array "letzteZeile" :-D ). In laenge wird die Anzahl der Einträge des Arrays gespeichert. In dem Array stehen 4 oder 5 Einträge. (z.B. 4, -12, -41, -3, 54) Diese sollen jetzt geordnet werden, so dass der höhste Eintrag als erster erscheint und der niedrigste als letztes. Hier der Code:
Delphi-Quellcode:
Ich rufe also in meinem Code die Prozedur mit:
//////////////////////////////////////////
//Der Array "Letzte Zeile" wird sortiert// ////////////////////////////////////////// procedure TForm11.BubbleSort(letzteZeile:Array of integer;laenge:integer); var Zaehler1, Zaehler2, Austausch: Integer; begin for Zaehler1 := laenge downto 2 do for Zaehler2 := 1 to Zaehler1-1 do if letzteZeile[Zaehler2] < letzteZeile[Zaehler2+1] then begin Austausch := letzteZeile[Zaehler2]; letzteZeile[Zaehler2] := letzteZeile[Zaehler2+1]; letzteZeile[Zaehler2+1]:=Austausch; end; end;
Delphi-Quellcode:
auf. (Spieleranzahl ist 'nen Integer). Da der Array LetzteZeile global ist müsste er doch eigentlich sortiert werden? Wird er aber nicht :wall: Was ist daran denn jetzt schon wieder falsch?????
Bubblesort(LetzteZeile,Spieleranzahl);
p.s. Alle die mich wegen der Verwendung des Bubblesort-Sortierverfahrens kritisieren wollen, bitte ich dies nicht zu tun, da ich, wie erwähnt mit 4 bis 5 Einträgen arbeite und mir das Bubblesort-Verfahren für diese Anzahl von Einträgen als einfachstes erscheint. :stupid: |
Re: Algo sortiert falsch
Hallo
dein array wird vielleicht richtig sortiert, aber du hast
Delphi-Quellcode:
ein Var in der Proc-deklaraiton vergessen.
procedure TForm11.BubbleSort(VAR letzteZeile:Array of integer;laenge:integer);
edit: da du ein dynamisches Array hast, beginnt das bei 0, du mußt noch die Schleifen anpassen. Mfg Frank |
Re: Algo sortiert falsch
Mamchmal aht man echt 'nen Brett vor'm Kopf!
:wall: :wall: :wall: :wall: :wall: Ich habe den Array "LetzteZeile" zwar in der Prozedure sortiert, aber das nur als lokale Variable. Hab den lokalen Array jetzt "zeile" genannt und ans Ende ein:
Delphi-Quellcode:
gesetzt. Jetzt sortiert er auch.
for i:=1 to laenge do
begin letzteZeile[i]:=Zeile[i-1]; end; :bouncing4: :bounce1: :firejump: :bounce2: :dancer: :dancer2: :dancer: :dancer2: Danke an alle, die sich Gedanklen gemacht haben! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 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