Merge Sort

Run Settings
LanguageJavaScript
Language Version
Run Command
const input = [99, 44, 6, 2, 1, 5, 63, 87, 283, 4, 0]; function mergeSort(array) { if (array.length === 1) { return array; } // Split Array into right and left const middle = Math.round(array.length / 2); const left = array.slice(0, middle); const right = array.slice(middle); console.log({ left, right }); return merge(mergeSort(left), mergeSort(right)); } function merge(a = [], b = []) { const result = []; let r1 = 0; let r2 = 0; let i = 0; while (r1 < a.length && r2 < b.length) { if (a[r1] < b[r2]) { result[i] = a[r1]; r1++; } else { result[i] = b[r2]; r2++; } i++; } while (r1 < a.length) { result[i] = a[r1]; r1++; i++; } while (r2 < b.length) { result[i] = b[r2]; r2++; i++; } console.log({ result }); // result.concat(a.slice(r1)).concat(b.slice(r2)); //ignore last two while loops return result; } console.log(mergeSort(input));
Editor Settings
Theme
Key bindings
Full width
Lines