ich habe folgendes problem:
wir sollen ein quicksort-programm für delphi programmieren.
mein programm besteht (von der oberfläche her) aus 2 buttons und einem stringrid (hier genannt:"tab")
die quicksort-prozedur habe ich schon, die zufallszahlen in der tabelle auch schon (bzufall), jetzt habe ich nur keinen plan, wie ich dem programm suggeriere, dass die tabelle das array ist, welches sortiert werden soll (bklick)
hier ist der quelltext von meinem programm, es ist noch eine prozedur pause mit drinne, um das ganze besser sichtbar zu machen.
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure QuickSort(var A: array of Integer; iLo, iHi: Integer) ;
var
Lo, Hi, Pivot, T: Integer;
begin
Lo := iLo;
Hi := iHi;
Pivot := A[(Lo + Hi) div 2];
repeat
while A[Lo] < Pivot do Inc(Lo) ;
while A[Hi] > Pivot do Dec(Hi) ;
if Lo <= Hi then
begin
T := A[Lo];
A[Lo] := A[Hi];
A[Hi] := T;
Inc(Lo) ;
Dec(Hi) ;
end;
until Lo > Hi;
if Hi > iLo then QuickSort(A, iLo, Hi) ;
if Lo < iHi then QuickSort(A, Lo, iHi) ;
end;
procedure pause(zeit:integer);
var laufzeit:longint;
begin
laufzeit:=gettickcount;
repeat
application.ProcessMessages;
until(gettickcount-laufzeit)>zeit;
end;
procedure TForm1.bklickClick(Sender: TObject);
var
intArray : array of integer;
begin
SetLength(intArray,10) ;
QuickSort(intArray, Low(intArray), High(intArray)) ;
end;
procedure TForm1.bzufallClick(Sender: TObject);
var i,zufall:integer; ;
begin
for i:=0 to 9 do
begin
zufall:=random(10);
tab.cells[i,0]:=inttostr(zufall);
pause(10);
end;
end;
ich wäre sehr verbunden, wenn sich jemand finden würde, der mir weiterhelfen kann, ich bin ziemlich verzweifelt.
Lad die Zufallszahlen nicht gleich in's StringGrid, sondern ersteinmal in ein Array.
Dieses Array kannst du ja dann, wenn du willst, vor dem Sortieren in das StringGrid laden.
Wenn du die Zufallszahlen erzeutg hast, übergib dieses Array per Referenzzuweisung an deine QuickSort - Funktion. Danach sollte das Array sortiert sein und du kannst es ausgeben.