Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def merge_sort(arr):
- if len(arr) > 1:
- mid = len(arr) // 2
- left = arr[:mid]
- right = arr[mid:]
- merge_sort(left)
- merge_sort(right)
- left_pointer, right_pointer, arr_pointer = 0, 0, 0
- while left_pointer < len(left) and right_pointer < len(right):
- if left[left_pointer] < right[right_pointer]:
- arr[arr_pointer] = left[left_pointer]
- left_pointer += 1
- arr_pointer += 1
- else:
- arr[arr_pointer] = right[right_pointer]
- right_pointer += 1
- arr_pointer += 1
- swaps += 1
- # handling the rest items
- while left_pointer < len(left):
- arr[arr_pointer] = left[left_pointer]
- left_pointer += 1
- arr_pointer += 1
- while right_pointer < len(right):
- arr[arr_pointer] = right[right_pointer]
- right_pointer += 1
- arr_pointer += 1
- return swaps
- print (merge_sort([3,1,2,4,6,1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement