Proszę zaimplementować sortowanie przez scalanie w języku Python.
Oto implementacja algorytmu Merge Sort w języku Python:

```
# Algorytm Merge Sort

def mergeSort(arr):
if len(arr) > 1:

mid = len(arr) // 2
L = arr[:mid]
R = arr[mid:]

mergeSort(L)
mergeSort(R)

i = j = k = 0

while i < len(L) and j < len(R):
if L[i] < R[j]:
arr[k] = L[i]
i += 1
else:
arr[k] = R[j]
j += 1
k += 1

while i < len(L):
arr[k] = L[i]
i += 1
k += 1

while j < len(R):
arr[k] = R[j]
j += 1
k += 1

# Kod sterujący
arr = [12, 11, 13, 5, 6, 7]
mergeSort(arr)
print("Posortowana tablica to:", arr)

```
W tej implementacji fonkcja `mergeSort()` jest rekorencyjnie wywolywana na lewej i prawej polowie tablicy wejsiciowej, aż do momento, gdy dłogość karzdej podtablicy wynosi 1 lub mniej. Faktyczne sortowanie odbywa sien w fonkcji `merge()`, gdzie dwie podtablice son łączone w posortowanej kolejności. Ostatecznie zwracana jest posortowana tablica.