Quick actions

cmd+k|ctrl+k

Navigation

Languages

Exercise: Merge Sort

Snippet info

Language

Python

Visibility

public

Author

rakeshbhatia87

Created

2023-01-11T07:47:23.628722Z

Updated

2023-01-11T08:08:59.992679Z


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)
INFO