Quick actions

cmd+k|ctrl+k

Navigation

Languages

Merge Sort

Snippet info

Language

JavaScript

Visibility

public

Author

varun.muriyanat

Created

2025-05-31T14:24:20.120801Z

Updated

2025-06-03T18:15:17.434777Z

let array = [6, 5, 3, 1, 8, 7, 2, 4];
// let array = [99,44,6,2,1,5,63,87,283,4,0];
function mergeSort(arr) {
    // debugger;
    let len = arr.length;
    if (len <= 1) {
        return; //base case
    }
    
    let left = [];
    let right = [];
    let left_size = Math.floor(len / 2);
    let right_size = len - left_size;
    
    for (let i=0; i<left_size;i++) {
        left.push(arr[i]);
    }
    
    for (let i=left_size; i<len;i++) {
        right.push(arr[i]);
    }
    
    mergeSort(left);
    mergeSort(right);
    
    merge(arr, left, right);
}

function merge(arr, left, right) {
    let l = 0;
    let r = 0;
    let i = 0;
    while (l < left.length && r < right.length && i < arr.length) {
        if (left[l] < right[r]) {
            arr[i] = left[l];
            l++;
        } else {
            arr[i] = right[r];
            r++;
        }
        i++;
    }
    
    while (l < left.length) {
        arr[i] = left[l];
        l++;
        i++;
    }
    
    while (r < right.length) {
        arr[i] = right[r];
        r++;
        i++;
    }
}

mergeSort(array);
console.log(array);
INFO