Merge sort solution with Python

admin
By -
1 minute read
0

 a = [6, 3, 8, 5, 2, 7, 4, 1]

#Divide COnquer and Merge


def merge_sort(a):

    if len(a) <=1:

        return a

    n = len(a)

    #Find middle index

    mid = len(a)//2

    

    #Divide and Conquer using Recursivley

    left_half = merge_sort(a[0:mid])

    right_half = merge_sort(a[mid:n])

    

    return merge(left_half, right_half)

    

    

def merge(left, right):

    result = []

    i = 0 

    j = 0

    

    while i < len(left)  and  j < len(right):

        if left[i] < right[j]:

            result.append(left[i])

            i = i + 1

        else:

            result.append(right[j])

            j = j + 1

            

    result.extend(left[i:])

    result.extend(right[j:])

    return result



mergesort = merge_sort(a)

print(mergesort)

Post a Comment

0Comments

Today | 10, April 2025