Merge Sort

Run Settings
LanguageJavaScript
Language Version
Run Command
const numbers = [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 length = array.length; const middle = Math.floor(length /2); const left = array.slice(0,middle); const right = array.slice(middle); return merge( MergeSort(left), MergeSort(right) ) } function merge(left,right){ const result = []; let leftIndex = 0; let rightIndex = 0; while(leftIndex < left.length && rightIndex < right.length){ if(left[leftIndex] < right[rightIndex]){ result.push(left[leftIndex]); leftIndex++; } else { result.push(right[rightIndex]); rightIndex++ } } console.log(left,right); return result.concat(left.slice(leftIndex)).concat(right.slice(rightIndex)); } const answer = MergeSort(numbers); console.log(answer);
Editor Settings
Theme
Key bindings
Full width
Lines