working version
This commit is contained in:
parent
703d06e6b2
commit
aea23efb71
3 changed files with 61 additions and 45 deletions
|
|
@ -2,5 +2,9 @@ module.exports = {
|
||||||
"extends": [
|
"extends": [
|
||||||
"eslint-config-prettier",
|
"eslint-config-prettier",
|
||||||
"prettier"
|
"prettier"
|
||||||
]
|
],
|
||||||
}
|
"parserOptions": {
|
||||||
|
"ecmaVersion": "latest",
|
||||||
|
"sourceType": "module",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,34 +1,42 @@
|
||||||
function fibs (number) {
|
function fibs(number) {
|
||||||
const fibsArray = [0];
|
const fibsArray = [0];
|
||||||
if (number === 0) {
|
if (number === 0) {
|
||||||
return (fibsArray);
|
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) {
|
return fibsArray;
|
||||||
fibsArray.push(i + fibsArray[fibsArray.length - 1]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fibsArray.push(fibsArray[fibsArray.length - 2] + fibsArray[fibsArray.length - 1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(fibsArray);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function fibsRec (number) {
|
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]);
|
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
|
// get input from user
|
||||||
const readline = require('readline').createInterface({
|
const readline = require("readline").createInterface({
|
||||||
input: process.stdin,
|
input: process.stdin,
|
||||||
output: process.stdout
|
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("Using iterative fibs function:");
|
||||||
console.log(fibs(number));
|
console.log(fibs(number));
|
||||||
console.log("Using recursive fibsRec function:");
|
console.log("Using recursive fibsRec function:");
|
||||||
console.log(fibsRec(number));
|
console.log(fibsRec(number));
|
||||||
readline.close();
|
readline.close();
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,33 @@
|
||||||
// merge sort - recursive
|
// merge sort - recursive
|
||||||
function mergeSort (arr) {
|
function mergeSort(arr) {
|
||||||
if (arr.length < 2) return arr;
|
if (arr.length < 2) return arr;
|
||||||
// the sauce
|
// the sauce
|
||||||
function mergeArrays (left, right) {
|
function mergeArrays(left, right) {
|
||||||
// create output array
|
// create output array
|
||||||
let output = [];
|
let output = [];
|
||||||
// while both halves of the array have values
|
// while both halves of the array have values
|
||||||
while (left.length && right.length) {
|
while (left.length && right.length) {
|
||||||
// remove first index from correct array and add to output array
|
// remove first index from correct array and add to output array
|
||||||
left[0] <= right[0] ? output.push(left.shift()) : output.push(right.shift());
|
left[0] <= right[0]
|
||||||
}
|
? output.push(left.shift())
|
||||||
return output.concat(left, right);
|
: output.push(right.shift());
|
||||||
}
|
}
|
||||||
const half = Math.floor(arr.length / 2);
|
return output.concat(left, right);
|
||||||
const left = arr.splice(0, half);
|
}
|
||||||
return mergeArrays(mergeSort(left), mergeSort(arr));
|
const half = Math.floor(arr.length / 2);
|
||||||
|
const left = arr.splice(0, half);
|
||||||
|
return mergeArrays(mergeSort(left), mergeSort(arr));
|
||||||
}
|
}
|
||||||
|
|
||||||
// get input from user
|
// get input from user
|
||||||
const readline = require('readline').createInterface({
|
const readline = require("readline").createInterface({
|
||||||
input: process.stdin,
|
input: process.stdin,
|
||||||
output: process.stdout
|
output: process.stdout,
|
||||||
});
|
});
|
||||||
|
|
||||||
readline.question('Enter comma-separated numbers to sort: ', numbers => {
|
readline.question("Enter comma-separated numbers to sort: ", (numbers) => {
|
||||||
numbers.indexOf(',') > -1 ? console.log (mergeSort([numbers])) : console.log ('No comma-separated numbers entered!');
|
numbers.indexOf(",") > -1
|
||||||
readline.close();
|
? console.log(mergeSort([numbers]))
|
||||||
});
|
: console.log("No comma-separated numbers entered!");
|
||||||
|
readline.close();
|
||||||
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue