diff --git a/src/fibonacci.js b/src/fibonacci.js index 67e40c6..ded8178 100644 --- a/src/fibonacci.js +++ b/src/fibonacci.js @@ -18,7 +18,17 @@ function fibsRec (number) { return number === 1 ? [0 , 1] : fibsRec(number - 1).concat(fibsRec(number -1)[fibsRec(number - 1).length - 1] + fibsRec(number -1)[fibsRec(number - 1).length - 2]); } -console.log("Using iterative fibs function:"); -console.log(fibs(8)); -console.log("Using recursive fibsRec function:"); -console.log(fibsRec(8)); \ No newline at end of file +// get input from user +const readline = require('readline').createInterface({ + input: process.stdin, + output: process.stdout +}); + +readline.question('Enter amount of Fibonacci numbers to display: ', number => { + console.log("Using iterative fibs function:"); + console.log(fibs(number)); + console.log("Using recursive fibsRec function:"); + console.log(fibsRec(number)); + readline.close(); +}); + diff --git a/src/mergeSort.js b/src/mergeSort.js index e69de29..1174582 100644 --- a/src/mergeSort.js +++ b/src/mergeSort.js @@ -0,0 +1,29 @@ +// merge sort - recursive +function mergeSort (arr) { + if (arr.length < 2) return arr; + // the sauce + function mergeArrays (left, right) { + // create output array + let output = []; + // while both halves of the array have values + while (left.length && right.length) { + // remove first index from correct array and add to output array + left[0] <= right[0] ? output.push(left.shift()) : output.push(right.shift()); + } + return output.concat(left, right); + } + const half = Math.floor(arr.length / 2); + const left = arr.splice(0, half); + return mergeArrays(mergeSort(left), mergeSort(arr)); +} + +// get input from user +const readline = require('readline').createInterface({ + input: process.stdin, + output: process.stdout +}); + +readline.question('Enter comma-separated numbers to sort: ', numbers => { + numbers.indexOf(',') > -1 ? console.log (mergeSort([numbers])) : console.log ('No comma-separated numbers entered!'); + readline.close(); +}); \ No newline at end of file