Hallo,
Ich will den MergeSort Algorithmus programmieren, aber irgendwie klappts nicht :X Ich bleibe beim übergeben meines Arrays an mein Hilfsarray hängen (bzw. bei der 2ten hälfte des übergebens

). Der Misch schritt ist ausgeklammert, ob der so richtig ist weiß ich nicht, werde da durch die try&error methode schlauer werden

(hoffe ich zumindest).
Sieht jemand den Fehler ? :X
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75:
| program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
Type TListe = array[1..100] of integer; Var i:integer; l,r:extended; Liste:TListe;
procedure Merge(m:integer; l,r:extended; var Liste:Tliste); Var i,j,k:integer; b:TListe; begin
for i:= TRUNC(l) to m do b[i]:=Liste[i]; for j:= m+1 to TRUNC(r) do b[i]:=Liste[i]; for i:= TRUNC(l) to TRUNC(r) do writeln(i,'.) ',b[i]); writeln; i:=TRUNC(l); j:=TRUNC(r);
end;
procedure Mergesort(l,r:extended; var Liste:Tliste); Var m:integer; begin if l<r then begin
m:=TRUNC((l+r)/2); Mergesort(l,m,Liste); Mergesort(m+1,r,Liste); merge(m,l,r,Liste);
end; end;
begin l:=1; r:=10;
randomize; for i:= TRUNC(l) to TRUNC(r) do Liste[i]:=(TRUNC(r)-i); writeln; Mergesort(l,r,Liste);
readln; end. |