Hallo!
Ich versuche schon ewig den MergeSort in einem Programm von mir zu benutzen. Aber irgendetwas habe ich scheinbar immer falsch gemacht. Ich möchte im Prinzip nur einen Array mit dem MergeSort sortieren. Hier ein Teil aus meinem Quellcode (den ich auf der
DP-Seite gefunden habe):
Delphi-Quellcode:
var
Form1: TForm1;
Arr :
array of integer;
HilfsArray:
array of integer;
implementation
{$R *.dfm}
Procedure MergeSort( l, r : Integer );
var i, j, k, m : Integer;
Begin
If (l < r)
Then
Begin
m:= (r+l)
div 2;
MergeSort( l, m );
MergeSort( m+1, r );
For i:= l
To m
Do HilfsArray[i]:= Data[i];
i:= l;
For j:= m+1
To r
Do HilfsArray[r+m+1-j]:= Data[j];
j:= r;
For k:= l
To r
Do
Begin
If (HilfsArray[i] < HilfsArray[j])
Then
Begin
Data[k]:= HilfsArray[i];
inc( i );
End
Else
Begin
Data[k]:= HilfsArray[j];
dec( j );
End;
End;
End;
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
MergeSort(0,5)
end;
Danke für eure Hilfe!