How implement merge sort algorithm in JavaScript

1 Answer

0 votes
function merge(left, right) {
    let arr = [];
  
    while (left.length && right.length) {
        if (left[0] < right [0]) {
            arr.push(left.shift())
        } else {
            arr.push(right.shift())
        }
    }
  
    return [...arr,...left,...right];
}
  
function mergeSort(arr, halflength = arr.length / 2) {
    if (arr.length < 2) {
        return arr
    }
  
    const left = arr.splice(0, halflength); 
  
    return merge(mergeSort(left), mergeSort(arr))
}
  
let arr = [10, 8, 5, 4, 3, 6, 2, 7, 1, 9];
  
console.log(mergeSort(arr));
  
  
    
      
      
/*
run:
      
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

*/

 



answered May 25, 2021 by avibootz
edited Jan 17, 2022 by avibootz

Related questions

1 answer 160 views
1 answer 216 views
2 answers 278 views
1 answer 166 views
1 answer 189 views
1 answer 98 views
...