Sorting

Implement Merge Sort

Problem

Given a list of numbers, sort it using the Merge Sort algorithm.

Example

{
"arr": [5, 8, 3, 9, 4, 1, 7]
}

Output:

[1, 3, 4, 5, 7, 8, 9]

Solution

function merge(left, right) {
    var mergedArr = [];
    var leftIndex = 0;
    var rightIndex = 0;
    
        while(leftIndex < left.length && rightIndex < right.length) {
        if(left[leftIndex] < right[rightIndex]) {
            mergedArr.push[left[leftIndex]]
            leftIndex++;
        } else {
            mergedArr.push[right[rightIndex]];
            rightIndex++;
        }
    }
    
    return mergedArr.concat(left.slice(leftIndex))
                    .concat(right.slice(rightIndex));
}
 
function merge_sort(arr) {
    // Write your code here.
    
      if (arr.length <= 1) {
        return arr;
      }

    var middle = Math.floor(arr.length /2)
    var left = arr.slice(0, middle);
    var right = arr.slice(middle);
    
    return merge(
            merge_sort(left), merge_sort(right)
        );
}
Sorting

Implement Insertion Sort

Problem

Given a list of numbers, sort it using the Insertion Sort algorithm.

Example

{
"arr": [5, 8, 3, 9, 4, 1, 7]
}

Output:

[1, 3, 4, 5, 7, 8, 9]

Solution

function insertion_sort(arr) {
    // Write your code here.
    for(var i=1; i < arr.length; i++){
        var tempArr = arr[i];
        
        for(var j = i-1; j>=0 && arr[j] > tempArr; j--) {
            arr[j+1] = arr[j];
        }
        
        arr[j+1] = tempArr;
    }
    return arr;
}
Sorting

Implement Bubble Sort

Problem

Given a list of numbers, sort it using the Bubble Sort algorithm.

Example

{
"arr": [5, 8, 3, 9, 4, 1, 7]
}

Output:

[1, 3, 4, 5, 7, 8, 9]

Solution

function swapArr(arr, i, j) {
    var tempArr = arr[i];
    arr[i] = arr[j];
    arr[j] = tempArr;
}

function bubble_sort(arr) {
    // Write your code here.
    for(var i=0; i< arr.length; i+= 1){
        for(var j=1; j < arr.length; j+=1) {
            if(arr[j-1] > arr[j]) {
                swapArr(arr, j-1, j);
            }
        }
    }
    return arr;
}
Sorting

Implement Selection Sort

Problem

Given a list of numbers, sort it using the Selection Sort algorithm.

Example

{
"arr": [5, 8, 3, 9, 4, 1, 7]
}

Output:

[1, 3, 4, 5, 7, 8, 9]

Solution

function swap(arr, i, j) {
    var tempArr = arr[i];
    arr[i] = arr[j];
    arr[j] = tempArr;
}

function selection_sort(arr) {
    // Write your code here.
    for(var i=0; i arr[j]) {
                swap(arr, j-1, j);
                }
            }
        }
        return arr;
    }