Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.07 KB | None | 0 0
  1.  
  2. def merge_sort(arr):
  3.  
  4.     if len(arr) > 1:
  5.         mid = len(arr) // 2
  6.         left = arr[:mid]
  7.         right = arr[mid:]
  8.         merge_sort(left)
  9.         merge_sort(right)
  10.  
  11.  
  12.         left_pointer, right_pointer, arr_pointer = 0, 0, 0
  13.  
  14.         while left_pointer < len(left) and right_pointer < len(right):
  15.  
  16.             if left[left_pointer] < right[right_pointer]:
  17.                 arr[arr_pointer] = left[left_pointer]
  18.                 left_pointer += 1
  19.                 arr_pointer += 1
  20.             else:
  21.                 arr[arr_pointer] = right[right_pointer]
  22.                 right_pointer += 1
  23.                 arr_pointer += 1
  24.                 swaps += 1
  25.  
  26.             # handling the rest items
  27.  
  28.         while left_pointer < len(left):
  29.             arr[arr_pointer] = left[left_pointer]
  30.             left_pointer += 1
  31.             arr_pointer += 1
  32.  
  33.         while right_pointer < len(right):
  34.             arr[arr_pointer] = right[right_pointer]
  35.             right_pointer += 1
  36.             arr_pointer += 1
  37.  
  38.  
  39.     return swaps
  40.  
  41. print (merge_sort([3,1,2,4,6,1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement