Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def mergesort(D):
- Dsize = float(Size(D)) #tar ut längden av Listan, genom att använda funktionen Size()
- print Dsize
- if Dsize <= 1:
- return D
- else:
- left=DirectedList() #skapar två tomma listor left och right
- right=DirectedList()
- middle = Dsize/2 #mellersta elementet i listan
- print middle
- i=0
- D_pos=D.first()
- L_pos=left.first()
- R_pos=right.first()
- while D.isEnd(D_pos) == False: #sätter in alla element som är vänster om mitten i vänstra listan
- if i < middle:
- left.insert(L_pos,D.inspect(D_pos))
- D_pos=D.next(D_pos)
- i=i+1
- D.isEnd(D_pos)
- elif i >= middle: #sätter in alla element som är i mitten eller till höger i listan
- right.insert(R_pos,D.inspect(D_pos))
- D_pos=D.next(D_pos)
- i=i+1
- D.isEnd(D_pos)
- #skriver ut vad som finns till vänster
- left=mergesort(left)
- right=mergesort(right)
- print left
- print right
- merge(left,right)
Add Comment
Please, Sign In to add comment