function mergesort(arr, left, right) {
if (left < right) {
let mid = parseInt((right - left) / 2) + left;
mergesort(arr, left, mid);
mergesort(arr, mid + 1, right);
merge(arr, left, mid, right);
}
}
function merge(arr, left, mid, right) {
let i = left, j = mid + 1, k = 0, temp = [];
while (i <= mid && j <= right) {
if (arr[i] <= arr[j]) {
temp[k] = arr[i];
i++;
k++;
} else {
temp[k] = arr[j];
j++;
k++;
}
}
for (; i <= mid; i++) {
temp[k] = arr[i];
k++;
}
for (; j <= right; j++) {
temp[k] = arr[j];
k++;
}
for (let i = left; i <= right; i++) {
arr[i] = temp[i];
}
}
let arr = [ 5, 3, 7, 2, 9, 12, 4 ];
n = arr.length;
mergesort(arr, 0, n);
Please help me to find the bugs in the mergesort
code.
It prints this output: [undefined, undefined, undefined, undefined, undefined, undefined, 3, 5]
. Why it is not working properly.