Registriert seit: 16. Mär 2004
2.287 Beiträge
|
Re: fehler bei ganz simpler konstruktion
14. Sep 2004, 16:53
die entscheidenden auszüge
Delphi-Quellcode:
setlength(werte,SpinEdit1.Value);
for i:=0 to SpinEdit1.Value-1 do werte[i]:=random(SpinEdit2.Value);
QuickSort(werte,0,high(werte));
for i:=0 to SpinEdit1.Value-1 do
ListBox1.Items.Add(inttostr(werte[i]));
quicksort (abgeschrieben):
Delphi-Quellcode:
procedure TForm1.QuickSort( var a: array of Integer; lo, hi: integer);
var i, j, h, x: integer;
begin
// lo ist der unterste Index, hi ist der oberste Index des
// zu sortierenden (Teil-)Feldes a
i:=lo;
j:=hi;
x:=a[(lo+hi) div 2];
//Aufteilung
while i<=j do begin
while a[i]<x do inc(i);
while a[j]>x do dec(j);
if (i<=j) then begin
h:=a[i];
a[i]:=a[j];
a[j]:=h;
inc(i); dec(j);
end;
end;
// Rekursion
if lo<j then QuickSort(a, lo, j);
if i<hi then QuickSort(a, i, hi);
end;
//Durch Aufruf von QuickSort(a, 0, high(a)) wird das gesamte Array a sortiert.
»Unlösbare Probleme sind in der Regel schwierig...«
|
|
Zitat
|