JSFiddle - React, Tailwind, and code Playground
by bhupendra negi
CSS
function merge(leftArr, rightArr) {
let leftIndex = 0,
rightIndex = 0,
results = [];
while (leftIndex < leftArr.length && rightIndex < rightArr.length) {
if (leftArr[leftIndex] < rightArr[rightIndex]) {
results.push(leftArr[leftIndex]);
leftIndex++;
}
else {
results.push(rightArr[rightIndex]);
rightIndex++;
}
}
// now add remaining items of arr;
return results.concat(leftArr.slice(leftIndex)).concat(rightArr.slice(rightIndex));
}
JavaScript
function mergeSort(arr) {
if (arr.length == 1) return arr;
let mid, leftside, rightside, results1;
mid = Math.floor(arr.length / 2);
leftside = mergeSort(arr.slice(0, mid));
rightside = mergeSort(arr.slice(mid));
results1 = merge(leftside, rightside);
console.log(results1)
return results1;
}
function merge(left, right) {
let leftIndex = 0,
rightIndex = 0,
results = [];
while (leftIndex < left.length && rightIndex < right.length) {
if (left[leftIndex] < right[rightIndex]) {
results.push(left[leftIndex])
leftIndex++;
} else {
results.push(right[rightIndex])
rightIndex++;
}
}
return results.concat(left.slice(leftIndex)).concat(right.slice(rightIndex));
}
const results = mergeSort([3,1,4,2,5,6]);
console.log(results)