Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. def merge(arr, l, m, r):
  2. l_length = (m - l) + 1
  3. r_length = r - m
  4.  
  5. left_half = [0]*l_length
  6. right_half = [0]*r_length
  7.  
  8. for i in range(0 , l_length):
  9. left_half[i] = arr[l + i]
  10.  
  11. for j in range(0 , r_length):
  12. right_half[j] = arr[m + 1 + j]
  13.  
  14. i = 0
  15. j = 0
  16. k = l
  17.  
  18. while i < l_length and j < r_length :
  19.  
  20. if left_half[i] <= right_half[j]:
  21. arr[k] = left_half[i]
  22. i += 1
  23. else:
  24. arr[k] = right_half[j]
  25. j += 1
  26. k += 1
  27.  
  28. while i < l_length:
  29. arr[k] = left_half[i]
  30. i += 1
  31. k += 1
  32.  
  33.  
  34. while j < r_length:
  35. arr[k] = right_half[j]
  36. j += 1
  37. k += 1
  38. return arr
  39.  
  40. def merge_sort_helper(arr,l,r):
  41. if l < r:
  42.  
  43. m = (l+(r-1))//2
  44. merge_sort_helper(arr, l, m)
  45. merge_sort_helper(arr, m+1, r)
  46.  
  47. return merge(arr, l, m, r)
  48. else:
  49. return arr
  50.  
  51. def mergeSort(arr):
  52. return merge_sort_helper( arr, 0, len(arr)-1 )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement