Python Program to Implement Merge Sorting

01. Example:

def mergeSorting(data, start, end):
    
    if end - start > 1:
        mid = (start + end)//2
        mergeSorting(data, start, mid)
        mergeSorting(data, mid, end)
        mergeList(data, start, mid, end)
 
def mergeList(data, start, mid, end):
    left = data[start:mid]
    right = data[mid:end]
    k = start
    i = 0
    j = 0
    while (start + i < mid and mid + j < end):
        if (left[i] <= right[j]):
            data[k] = left[i]
            i = i + 1
        else:
            data[k] = right[j]
            j = j + 1
        k = k + 1
    if start + i < mid:
        while k < end:
            data[k] = left[i]
            i = i + 1
            k = k + 1
    else:
        while k < end:
            data[k] = right[j]
            j = j + 1
            k = k + 1
 
 
list01 = input('Enter the list of numbers: ').split()
list01 = [int(x) for x in list01]

mergeSorting(list01, 0, len(list01))

print('nSorted list: ', end='')
print(list01)

Output:

Enter the list of (Non-negative) numbers: 320 420 140 500 185 60 200 80 10 100
Sorted list: [10, 60, 80, 100, 140, 185, 200, 320, 420, 500]

 

Leave a comment