Merge Sort Python
def mergeSort(arr):
if len(arr) > 1:
a = len(arr)//2
l = arr[:a]
r = arr[a:]
# Sort the two halves
mergeSort(l)
mergeSort(r)
b = c = d = 0
while b < len(l) and c < len(r):
if l[b] < r[c]:
arr[d] = l[b]
b += 1
else:
arr[d] = r[c]
c += 1
d += 1
while b < len(l):
arr[d] = l[b]
b += 1
d += 1
while c < len(r):
arr[d] = r[c]
c += 1
d += 1
def printList(arr):
for i in range(len(arr)):
print(arr[i], end=" ")
print()
# Driver program
if __name__ == '__main__':
arr = [0,1,3,5,7,9,2,4,6,8]
mergeSort(arr)
print("Sorted array is: ")
printList(arr)