Merge sort - Python

 def merge_sort(array):

    """Sorts an array using the merge sort algorithm."""

    if len(array) > 1:

        mid = len(array) // 2

        L = array[:mid]

        M = array[mid:]


        merge_sort(L)

        merge_sort(M)


        i = j = k = 0


        while i < len(L) and j < len(M):

            if L[i] < M[j]:

                array[k] = L[i]

                i += 1

            else:

                array[k] = M[j]

                j += 1

            k += 1


        while i < len(L):

            array[k] = L[i]

            i += 1

            k += 1


        while j < len(M):

            array[k] = M[j]

            j += 1

            k += 1


def print_list(array):

    for i in range(len(array)):

        print(array[i], end=" ")

    print()


if __name__ == '__main__':

    data = [6, 5, 12, 10, 9, 1]

    print("Original array is: ")

    print_list(data)


    merge_sort(data)


    print("Sorted array is: ")

    print_list(data)





Comments