### Merge Sort Algorithm in Python

In this source code example, we will write a code to implement the Merge Sort algorithm in Python.

Merge sort is one of the most efficient sorting algorithms. With a time complexity of O(n log n), it’s one of the fastest of all general-purpose sorting algorithms. The idea behind merge sort is divide and conquer — to break a big problem into several smaller, easier-to-solve problems, and then combine those solutions into a final result. The merge sort mantra is to split first and merge after.

# Merge Sort Algorithm in Python

In this Python program, we will take input from the User or console and print the result to the output:
``````def merge_sort(collection: list) -> list:

def merge(left: list, right: list) -> list:

def _merge():
while left and right:
yield (left if left <= right else right).pop(0)
yield from left
yield from right

return list(_merge())

if len(collection) <= 1:
return collection
mid = len(collection) // 2
return merge(merge_sort(collection[:mid]), merge_sort(collection[mid:]))

if __name__ == "__main__":
user_input = input("Enter numbers separated by a comma:\n").strip()
unsorted = [int(item) for item in user_input.split(",")]
print(*merge_sort(unsorted), sep=",")
``````

Output:

``````Enter numbers separated by a comma:
20,15,5,10,3,2,1
1,2,3,5,10,15,20``````

# Free Spring Boot Tutorial - 5 Hours Full Course

Watch this course on YouTube at Spring Boot Tutorial | Fee 5 Hours Full Course