From aea23efb71d815640ddceebc25c0b169be2d368c Mon Sep 17 00:00:00 2001 From: ak Date: Sun, 25 Jun 2023 20:15:48 -0700 Subject: [PATCH] working version --- .eslintrc.js | 8 ++++++-- src/fibonacci.js | 50 ++++++++++++++++++++++++++++-------------------- src/mergeSort.js | 48 +++++++++++++++++++++++++--------------------- 3 files changed, 61 insertions(+), 45 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 47f78ec..312e894 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,5 +2,9 @@ module.exports = { "extends": [ "eslint-config-prettier", "prettier" - ] -} + ], + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module", + } +} \ No newline at end of file diff --git a/src/fibonacci.js b/src/fibonacci.js index ded8178..c625756 100644 --- a/src/fibonacci.js +++ b/src/fibonacci.js @@ -1,34 +1,42 @@ -function fibs (number) { - const fibsArray = [0]; - if (number === 0) { - return (fibsArray); +function fibs(number) { + const fibsArray = [0]; + if (number === 0) { + return fibsArray; + } + for (i = 1; i <= number; i++) { + if (i === 1) { + fibsArray.push(i + fibsArray[fibsArray.length - 1]); + } else { + fibsArray.push( + fibsArray[fibsArray.length - 2] + fibsArray[fibsArray.length - 1] + ); } - for (i = 1; i <= number; i++) { - if (i === 1) { - fibsArray.push(i + fibsArray[fibsArray.length - 1]); - } - else { - fibsArray.push(fibsArray[fibsArray.length - 2] + fibsArray[fibsArray.length - 1]); - } - } - return(fibsArray); + } + return fibsArray; } -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]); +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] + ); } // get input from user -const readline = require('readline').createInterface({ - input: process.stdin, - output: process.stdout +const readline = require("readline").createInterface({ + input: process.stdin, + output: process.stdout, }); -readline.question('Enter amount of Fibonacci numbers to display: ', number => { +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 1174582..3427bbb 100644 --- a/src/mergeSort.js +++ b/src/mergeSort.js @@ -1,29 +1,33 @@ // 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); +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()); } - const half = Math.floor(arr.length / 2); - const left = arr.splice(0, half); - return mergeArrays(mergeSort(left), mergeSort(arr)); + 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 +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 +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(); +});