Quick actions

cmd+k|ctrl+k

Navigation

Languages

Merge Sort

Snippet info

Language

JavaScript

Visibility

public

Author

saurabhtiwari75844

Created

2023-03-17T07:14:26.331297Z

Updated

2023-03-17T07:14:26.331297Z



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 & left
    const length = array.length;
    const middle = Math.floor(length/2);
    const left = array.slice(0,middle);
    const right = array.slice(middle);
    
    // console.log('left:', left);
    // console.log('Right:', right);
    
    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))
}

console.log(mergeSort(numbers));

INFO