Procedura scalania dwóch ciągów może być przedstawiona w postaci pseudokodu: SCALAJ(T, lewy_pocz, lewy_koniec, prawy_koniec) L ← T[lewy_pocz : lewy_koniec] ⬅ (Kopia lewej połowy) P ← T[prawy_pocz : prawy_koniec] ⬅ (Kopia prawej połowy) i ← 0, j ← 0, k ← lewy_pocz DOPÓKI i < długość L ORAZ j < długość P : JEŚLI L[i] ≤ P[j] : T[k] ← L[i] i ← i + 1 W PRZECIWNYM RAZIE : T[k] ← P[j] j ← j + 1 k ← k + 1 DOPÓKI i < długość L : T[k] ← L[i] i ← i + 1 k ← k + 1 DOPÓKI j < długość P : T[k] ← P[j] j ← j + 1 k ← k + 1

Łatwo pokazać, że złożoność scalania jest proporcjonalna do długości wynikowego ciągu: pierwsza pętla wykonuje się dopóki indeksy i oraz j leżą w zakresie lewej i prawej połówki (innymi słowy - dopóki jest co porównywać). Kiedy jeden ze scalanych ciągów się wyczerpie, algorytm przechodzi do drugiej lub trzeciej pętli, które kopiują do T "resztki". Należy zwrócić uwagę, że zawsze wykona się albo druga albo trzecia pętla, zależnie od tego, czy w pierwszej wyczerpał się ciąg P, czy L.

Dużą zaletą algorytmu jest jego stabilność, co w przypadku sortowania oznacza zachowywanie w wynikowym ciągu kolejności równych danych.