MERGE-SORT(A, lo, hi) ▷ sort A[lo .. hi − 1]
- 1
if hi − lo ≤ 1 then return
- 2
mid ← lo + ⌊(hi − lo) / 2⌋
- 3
MERGE-SORT(A, lo, mid)
- 4
MERGE-SORT(A, mid, hi)
- 5
MERGE(A, lo, mid, hi)
MERGE(A, lo, mid, hi) ▷ A[lo .. mid − 1] and A[mid .. hi − 1] are sorted
- 6
B ← a copy of A[lo .. mid − 1]
- 7
i ← 0, j ← mid, k ← lo
- 8
while i < |B| and j < hi do
- 9
if B[i] ≤ A[j] then A[k] ← B[i], i ← i + 1 ▷ ≤ keeps the sort stable
- 10
else A[k] ← A[j], j ← j + 1
- 11
k ← k + 1
- 12
while i < |B| do
- 13
A[k] ← B[i], i ← i + 1, k ← k + 1
Use your own input
Type the input as JSON, in the same form as a preset.