def mergeSort(array):
if (len(array) == 1):
return array
# Split Array in into right and left
mid = len(array)//2
left = array[:mid]
right = array[mid:]
return merge(mergeSort(left), mergeSort(right))
def merge(left, right):
i = j = k = 0
n1 = len(left)
n2 = len(right)
mergedArray = left + right
while i < n1 and j < n2:
if left[i] < right[j]:
mergedArray[k] = left[i]
i += 1
else:
mergedArray[k] = right[j]
j += 1
k += 1
while i < n1:
mergedArray[k] = left[i]
i += 1
k += 1
while j < n2:
mergedArray[k] = right[j]
j += 1
k += 1
return mergedArray
numbers = [99, 44, 6, 2, 1, 5, 63, 87, 283, 4, 0]
answer = mergeSort(numbers)
print(answer)