![]() |
QuickSort
Servus Leute,
ich sitz daran schon eine halbe Ewigkeit und kriege es nicht raus, warum "mein" QuickSort es nicht schafft zufällige Zahlen aus einem Array zu sortieren. Vielleicht fällt Euch was auf? So werden die ungeordneten Zahlen in die 1. ListBox geschrieben ...
Delphi-Quellcode:
So werden die ungeordneten Zahlen aus der 1. ListBox gelesen und in ein Array gesetzt ...
procedure TForm1.ZINListBox;
begin ListBox1.Items.Clear; For i := 10 DownTo 0 Do Begin ListBox1.Items.Add(IntToStr(i)); End; ZINArray; end;
Delphi-Quellcode:
So sieht mein QuickSort aus ...
procedure TForm1.ZINArray;
begin For i := 0 To 10 Do Begin zahlen[i] := StrToInt(ListBox1.Items[i]); End; end;
Delphi-Quellcode:
So werden die geordneten Zahlen in der 2. ListBox ausgegeben ...
procedure TForm1.Quickie(VAR menge : array of integer; links, rechts, vert : integer);
begin //Quicksort i := links; j := rechts; mitte := zahlen[ (i+j) div 2]; tausch := vert; Repeat While zahlen[i] < mitte Do Begin i := i + 1; End; While zahlen[j] > mitte Do Begin j := j - 1; End; If i <= j Then Begin temp := zahlen[i]; zahlen[i] := zahlen[j]; zahlen[j] := temp; tausch := tausch + 1; i := i + 1; j := j - 1; End; Until i > j; If links < j Then Begin Quickie(zahlen, links, j, tausch); End; If rechts > i Then Begin Quickie(zahlen, i, rechts, tausch); End; Ergebnis; end;
Delphi-Quellcode:
procedure TForm1.Ergebnis;
begin For i := 0 To 10 Do Begin ListBox2.Items[i] := IntToStr(zahlen[i]); End; Edit1.Text := IntToStr(tausch); End; |
Re: QuickSort
Wenigstens ein Corschlag wäre schon mal gut :cry:.
|
Re: QuickSort
Hi!
Ich verstehe den Anfang schon nicht.
Delphi-Quellcode:
Dann steht in der ListBox ja nur:
For i := 10 DownTo 0 Do
Begin ListBox1.Items.Add(IntToStr(i)); End;
|
Re: QuickSort
So verstehe ich's ja:
Delphi-Quellcode:
Liegt's vielleicht daran?
For i := 10 DownTo 0 Do
Begin ListBox1.Items.Add(IntToStr(Zahlen[i])); End; |
Re: QuickSort
Ich habe mir deine Quicksort Prozedur mal angeschaut, konnte aber auf dem ersten Blick keinen Fehler sehen.
Probier es doch mal mit diesem Sortieralgorithmus von DP. ![]() |
Re: QuickSort
Zitat:
|
Re: QuickSort
Hallo nothin,
es wäre ganz hilfreich, wenn du schreiben würdest, was dein Programm, so wie du es oben angegeben hast, überhaupt macht. Stürzt es ab? Schreibt es die Zahlen unsortiert in die zweite Liste? Was genau an dem Programm funktioniert nicht? In dem Code den du angegeben hast fehlen beispielsweise alle lokalen Variablendeklarationen. Ist das Absicht? Grüße Seniman |
Re: QuickSort
Die Variablen wurden global definiert. Das Programm ordnet nicht alle Zahlen so wie es sollte. Manchmal zum Besipiel so ... 002223498345 ... wenn es sich um ein paar zufällige Zahlen gehandelt hat (wobei es mehrere gleiche Zahlen geben kann).
Also QuickSort erfült seine Aufgabe nicht! |
Re: QuickSort
... und es ist niemandem echt nichts aufgefallen? Etwas was an "meinem" Algorithmus falssh sein könnte?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:43 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