Code: Alles auswählen
def merg(v):
if len(v)>1:
left =v[:len(v)/2]
r=v[len(v)/2:]
print "l:",left,len(left),":l",
merg(left)
merg(r)
print "r: ",r,":r"
r.reverse()
merge=left+r
print "|",merge,"|",
lindex=0
rindex=-1
for count in range(len(v)):
if merge[lindex]<merge[rindex]:
v[count]=merge[lindex]
lindex=lindex+1
else:
v[count]=merge[rindex]
rindex=rindex-1
print "v:",v,":v",
merg([12,11,5])
L: [12] 1 :L
L: [11] 1 :L
r: [5] :r
| [11, 5] | v: [5, 11] :v r: [5, 11] :r
| [12, 11, 5] | v: [5, 11, 12] :v
WARUM gibt er mir "v: [5, 11] :v" und geht danach nochmal in die Funktion um gibt mir r:[5,11]:r aus?? nach dem print "v:",v,":v" ist noch schluss und die Funktion müsste enden *verzweifel!* Und warum geht er nach der ausgabe L:[12]1:L nochmal in die Funtkion? nachdem mit merg(left) doch die 12 übergeben wurde und danach len(v) == 1 sein muesste dürfte doch nicht L: [11] 1 :L erscheinen????