Registriert seit: 4. Dez 2003
Ort: Cottbus
222 Beiträge
Delphi 2005 Personal
|
Probleme mit Mergesort
9. Mär 2006, 21:12
Hallo Leute,
ich habe mich mal an eine Mergesort-Implementierung gemacht, aber es kommt immer ein Stackoverflow!
Delphi-Quellcode:
procedure SortierenMisch(links,rechts:integer);
var mitte,j,i,k : integer;
begin
if links < rechts then
begin
mitte :=(links+rechts) div 2; // mitte ermitteln
SortierenMisch(links,mitte); // rek. Aufruf (linke Liste)
SortierenMisch(mitte+1,rechts); // rek. Aufruf (rechte Liste)
Mischen(links,mitte,rechts);
end; //of then
end; //MischSort
Delphi-Quellcode:
var j,i,k,s,ir,l : Integer;
Begin
j:=mitte+1;
i:=links;
k:=links;
While (i<=mitte) and (j<=rechts) do
Begin
if (Mergefeld[i] <= Mergefeld[j]) then
Begin
hilfarray[k]:=Mergefeld[i];
inc(i);
end
else
Begin
hilfarray[k]:=Mergefeld[j];
inc(j);
end;
k:=k+1
end;
if i>mitte then
For s:=j to rechts do
hilfarray[k]:=Mergefeld[s]
else
For ir:=i to mitte do
hilfarray[k]:=Mergefeld[ir];
For l:=links to rechts do Mergefeld[l]:=hilfarray[l];
end;
Wo liegt das Problem?
Men are born ignorant, not stupid; they are made stupid by education. - Bertrand Russell
I cannot teach anybody anything, i can only make them think. - Socrates
|
|
Zitat
|