Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. def merge_sort(m):
  2. merge_sort2(m, 0, len(m) - 1)
  3.  
  4.  
  5. def merge_sort2(m, first, last):
  6. if first < last:
  7. middle = (first + last) // 2
  8. merge_sort2(m, first, middle)
  9. merge_sort2(m, middle + 1, last)
  10. merge(m, first, middle, last)
  11.  
  12.  
  13. def merge(m, first, middle, last):
  14. L = m[first:middle + 1]
  15. R = m[middle + 1:last + 1]
  16. L.append(float('inf'))
  17. R.append(float('inf'))
  18. i = j = 0
  19.  
  20. for k in range(first, last + 1):
  21. if L[i] <= R[j]:
  22. m[k] = L[i]
  23. i += 1
  24. else:
  25. m[k] = R[j]
  26. j += 1
  27.  
  28.  
  29. m = [3, 8, 16, 4, 7, 4, 5, 6, 78, 4]
  30. print(m)
  31. merge_sort(m)
  32. print(m)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement