Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#8

Re: fehler bei ganz simpler konstruktion

  Alt 14. Sep 2004, 15: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...«
  Mit Zitat antworten Zitat