Quick actions

cmd+k|ctrl+k

Navigation

Languages

MergeSort

Snippet info

Language

JavaScript

Visibility

public

Author

vinnysantos559

Created

2019-12-19T23:50:10Z

Updated

2020-01-08T01:40:12Z

const numbers = [99, 44, 6, 2, 1, 5, 63, 87, 283, 4, 0];

function mergeSort (array) {
  if (array.length === 1) {
    return array
  }
  
  var midpoint = Math.ceil(array.length/2);
  var left = array.splice(0,midpoint);
  var right = array;

  return merge(
    mergeSort(left),
    mergeSort(right)
  )
}

function merge(left, right){
    if(right === null) {
        return left;
    }
    else {
        var i = left.length;
        var j = right.length;
        var mergedArr = [];
        
        while(i > 0 && j > 0) {
            if(left[0] < right[0]) {
                mergedArr.push(left.shift());   
                i--;
            }
            else {
                mergedArr.push(right.shift());
                j--;
            }
        }
        
        if(i > j) {
            mergedArr.push(...left);
        }
        else {
            mergedArr.push(...right);
        }
        return mergedArr;
    }
}


const answer = mergeSort(numbers);
console.log(answer);
INFO