Merge Sort

Run Settings
LanguageJavaScript
Language Version
Run Command
'use strict'; const merge = (left, right) => { const result = []; let il = 0; let ir = 0; while (il < left.length && ir < right.length) { if (left[il] < right[ir]) { result.push(left[il++]); } else { result.push(right[ir++]); } } return result.concat(left.slice(il)).concat(right.slice(ir)); } const mergeSort = (arr) => { if (arr.length < 2) { return arr; } const middle = parseInt(arr.length / 2) | 0; const left = arr.slice(0, middle); const right = arr.slice(middle); return merge(mergeSort(left), mergeSort(right)); } const arr = [45, -8, 15, 3, 0, -1, 22]; const sortedArr = mergeSort(arr, 0, arr.length-1); console.log('sortedArr', sortedArr);
Editor Settings
Theme
Key bindings
Full width
Lines