Advertisement
fmasanori

Mergesort

Nov 22nd, 2011
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.49 KB | None | 0 0
  1. def merge(e, d):
  2.     r = []
  3.     i, j = 0, 0
  4.     while i < len(e) and j < len(d):
  5.         if e[i] <= d[j]:
  6.             r.append(e[i])
  7.             i += 1
  8.         else:
  9.             r.append(d[j])
  10.             j += 1
  11.     r += e[i:]
  12.     r += d[j:]
  13.     return r
  14. def mergesort(v):
  15.     if len(v) < 2:
  16.         return v
  17.     else:
  18.         m = len(v) // 2
  19.         e = mergesort(v[:m])
  20.         d = mergesort(v[m:])
  21.         return merge(e, d)
  22. print (mergesort([3, 4, 8, 0, 6, 7, 4, 2, 1, 9, 4, 5]))
  23.  
  24.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement