Ah danke, damit bin ich schonmal einen Schritt weiter gekommen.
Jetzt bekomme ich in der Zeile
Code:
SetLength(SA, (HiL - LoL + 1) + (HiR - LoR + 1));
den Fehler "[Error] mMergesort.pas(24): Incompatible types" und der Cursor steht hinter dem "SA,".
Mir ist klar, dass - da SA jetzt ein zweidimensionales Array ist - es so nicht stehenbleiben kann. Scheinbar wird in der Zeile die Anzahl der Elemente im Array "SA" neu gesetzt (oder so ähnlich) - ich habe es mal mit
Code:
SetLength(High(SA), (HiL - LoL + 1) + (HiR - LoR + 1));
versucht, aber es schien nicht ganz richtig zu sein...
Ich hoffe ihr könnt mir weiterhelfen
Ansonsten überlege ich, ob ich den Code nicht lieber selbst neu schreiben sollte. Dafür spricht sicherlich der Lerneffekt, bei Wikipedia gibt es im Abschnitt Implementierung (
http://de.wikipedia.org/wiki/Mergesort#Implementierung) ja den Pseudo-Code. Ist da mit "antworte liste" "result:=liste" gemeint?
Gegen das selbst programmieren spricht momentan, dass der Code sehr effizient arbeiten muss, da ich hinterher sehr viele Daten in einem Array möglichst schnell sortieren möchte. Ich gehe mal davon aus, dass der MergeSort-Code für Delphi von der Seite, die ich oben gepostet habe, recht effizient arbeitet - und ich fürchte, dass ich als Anfänger nicht an diese Effizienz herankommen werde...