Skip to content

Instantly share code, notes, and snippets.

@edrzmr
Created September 3, 2018 18:58
Show Gist options
  • Save edrzmr/d97736bd7fdf4b6f729f6423d54e9d63 to your computer and use it in GitHub Desktop.
Save edrzmr/d97736bd7fdf4b6f729f6423d54e9d63 to your computer and use it in GitHub Desktop.
def merge(left, right):
r = []
while any(left) and any(right):
if left[0] < right[0]:
r.append(left.pop(0))
else:
r.append(right.pop(0))
if not left and any(right):
r.append(right.pop(0))
if not right and any(left):
r.append(left.pop(0))
return r
def mergeSort(arr):
size = len(arr)
if size < 2:
return arr
mid = size // 2
return merge(mergeSort(arr[:mid]), mergeSort(arr[mid:]))
arr = [7, 3, 2, 4]
print('orig:, ', arr)
print('result:, ', mergeSort(arr))
arr = [7, 3, 2, 4, 1]
print('orig:, ', arr)
print('result:, ', mergeSort(arr))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment