function merge(a1, a2) {
const temp = [];
let i = 0;
let j = 0;
while(i < a1.length && j < a2.length) {
if(a1[i] <= a2[j]) {
temp.push(a1[i]);
i++;
}else {
temp.push(a2[j]);
j++;
}
}
if(i < a1.length) {
temp.push(... a1.slice(i))
}
if(j < a2.length) {
temp.push(... a2.slice(j))
}
return temp;
}
function mergeSort(arr) {
if(arr.length < 2) {
return arr
}
let mid = Math.ceil(arr.length / 2);
let leftArr = mergeSort(arr.slice(0, mid));
let rightArr = mergeSort(arr.slice(mid));
return merge(leftArr, rightArr)
}
const arr = [12,11];
console.log(mergeSort(arr))