Einzelnen Beitrag anzeigen

0815

Registriert seit: 5. Sep 2004
4 Beiträge
 
#1

MergeSort richtig implementieren

  Alt 13. Sep 2004, 18:20
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!
  Mit Zitat antworten Zitat