def mergeSort(items):
    if len(items) < 2:
        return items
    a = items[:len(items) // 2]
    b = items[len(items) // 2:]
    return merge(mergeSort(a), mergeSort(b))

def merge(a, b):
    result = []
    i, j = 0, 0 
    while i < len(a) and j < len(b):
        if a[i] < b[j]:
            result.append(a[i])
            i += 1
        else:
            result.append(b[j])
            j += 1
    while i < len(a):
        result.append(a[i])
        i += 1
    while j < len(b):
        result.append(b[j])
        j += 1
    return result

# test drive
print(mergeSort([4,2,5,1,3]))

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: