Forum: Sonstige Fragen zu Delphi
Delphi
by Amateurprofi,
1. Mai 2006
@Hawkeye:
Diese Prozedur aus Wikipedia meinst Du?!
procedure quicksort(var a:array of integer;l,r:integer);
var lpos,rpos,tmp,pivot:integer;
begin
pivot:=a;
lpos:=l;
rpos:=r;
Forum: Sonstige Fragen zu Delphi
Delphi
by Amateurprofi,
1. Mai 2006
Bonanza,
Schau Dir doch mal die Repeat Schleife an.
Nimm an, die beiden While Schleifen seien abgearbeitet und l_pos ist gleich r_pos.
Wenn jetzt weder l_pos noch r_pos verändert wird, dann wird die beim until definierte Abbruchbedingung ganz sicher nicht erfüllt.
Also wird die Repeat Schleife wiederholt, mit dem Ergebnis, daß sich an l_pos und r_pos nichts ändert.
Tja, und dann läuft dein...
Forum: Sonstige Fragen zu Delphi
Delphi
by Amateurprofi,
30. Apr 2006
hallo bonanza,
1) Die Variablen l_pos, r_pos, pivot, temp, pivot_feld müssen lokal, d.h. innerhalb der Prozedur Quicksort definiert sein.
2) Wenn Du das Array als Parameter übergibst, dann solltest Du es als array definieren.
edit:
3) bei " if l_pos < r_pos then begin " muß es heißen "<=".