Guest User

Untitled

a guest
Feb 20th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. # Merge Sort | Time Complexity O(NlogN)
  2. def mergeSort(alist):
  3. print("Splitting ", alist)
  4. if len(alist) > 1:
  5. mid = len(alist) // 2
  6. lefthalf = alist[:mid]
  7. righthalf = alist[mid:]
  8.  
  9. mergeSort(lefthalf)
  10. print("LeftHalf ", lefthalf)
  11. mergeSort(righthalf)
  12. print("RightHalf ", righthalf)
  13.  
  14.  
  15. i = 0
  16. j = 0
  17. k = 0
  18.  
  19. while i < len(lefthalf) and j < len(righthalf):
  20. if lefthalf[i] < righthalf[j]:
  21. alist[k] = lefthalf[i]
  22. i = i+1
  23. else:
  24. alist[k] = righthalf[j]
  25. j = j+1
  26. k = k+1
  27.  
  28. while i < len(lefthalf):
  29. alist[k] = lefthalf[i]
  30. i = i+1
  31. k = k+1
  32.  
  33. while j < len(righthalf):
  34. alist[k] = righthalf[j]
  35. j = j+1
  36. k = k+1
  37. print("Merging ", alist)
  38.  
  39.  
  40. alist = [54, 26, 93, 17, 31, 44, 55, 20]
  41. mergeSort(alist)
  42. print(alist)
Add Comment
Please, Sign In to add comment