def mergeSort(array): length = len(array) if length <= 1: return middle = length // 2 leftArray = array[:middle] rightArray = array[middle:] mergeSort(leftArray) mergeSort(rightArray) merge(leftArray, rightArray, array) def merge(leftArray, rightArray, array): leftLength = len(leftArray) rightLength = len(rightArray) i = 0 l = 0 r = 0 while l < leftLength and r < rightLength: if leftArray[l] < rightArray[r]: array[i] = leftArray[l] l += 1 else: array[i] = rightArray[r] r += 1 i += 1; if l < leftLength: array[i] = leftArray[l] if __name__ == '__main__': arr = [12, 11, 5, 6, 7, 194] print(f'Given array is: \n{arr}'); mergeSort(arr); print(f'Sorted array is: \n{arr}')