fix(linter): merge sort JavaScript (#272)

pull/273/head
Divesh Arora 2021-04-27 22:28:07 +05:30 committed by GitHub
parent 1e85e00602
commit 34d7f59beb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 24 additions and 28 deletions

View File

@ -1,32 +1,28 @@
function merge(left, right) {
let arr = []
// Break out of loop if any one of the array gets empty
while (left.length && right.length) {
// Pick the smaller among the smallest element of left and right sub arrays
if (left[0] < right[0]) {
arr.push(left.shift())
} else {
arr.push(right.shift())
}
const arr = [];
// Break out of loop if any one of the array gets empty
while (left.length && right.length) {
// Pick the smaller among the smallest element of left and right sub arrays
if (left[0] < right[0]) {
arr.push(left.shift());
} else {
arr.push(right.shift());
}
// Concatenating the leftover elements
// (in case we didn't go through the entire left or right array)
return [ ...arr, ...left, ...right ]
}
function mergeSort(array) {
const half = array.length / 2
// Base case or terminating case
if(array.length < 2){
return array
}
const left = array.splice(0, half)
return merge(mergeSort(left),mergeSort(array))
}
//testing
array = [4, 8, 7, 2, 11, 1, 3];
console.log(mergeSort(array));
// Concatenating the leftover elements
// (in case we didn't go through the entire left or right array)
return [...arr, ...left, ...right];
}
function mergeSort(array) {
const half = array.length / 2;
// Base case or terminating case
if (array.length < 2) {
return array;
}
const left = array.splice(0, half);
return merge(mergeSort(left), mergeSort(array));
}
// testing
console.log(mergeSort([4, 8, 7, 2, 11, 1, 3]));