1function mergeSort(arr, l, r) {
2 if (l >= r) return;
3 const mid = Math.floor((l + r) / 2);
4 mergeSort(arr, l, mid);
5 mergeSort(arr, mid + 1, r);
6 const left = arr.slice(l, mid + 1);
7 const right = arr.slice(mid + 1, r + 1);
8 let i = 0, j = 0, k = l;
9 while (i < left.length && j < right.length) {
10 arr[k++] = left[i] <= right[j] ? left[i++] : right[j++];
11 }
12 while (i < left.length) arr[k++] = left[i++];
13 while (j < right.length) arr[k++] = right[j++];
14}