mirror of
https://gitea.smigz.com/smiggiddy/odin-codeprojects.git
synced 2024-12-25 22:10:43 -05:00
feat: recursive sorting
This commit is contained in:
parent
db9b6abeea
commit
bb3e0d6bfa
2 changed files with 72 additions and 0 deletions
39
csci/fib.js
Normal file
39
csci/fib.js
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
function loopFib(seq) {
|
||||||
|
let first = 0;
|
||||||
|
let second = 1;
|
||||||
|
let final = [];
|
||||||
|
|
||||||
|
if (seq < 1) return first;
|
||||||
|
|
||||||
|
for (let i = 1; i < seq; i++) {
|
||||||
|
if (first === 0) {
|
||||||
|
final.push(first);
|
||||||
|
first = 1;
|
||||||
|
} else {
|
||||||
|
let temp = second;
|
||||||
|
second = first + second;
|
||||||
|
first = temp;
|
||||||
|
}
|
||||||
|
final.push(first);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(final);
|
||||||
|
}
|
||||||
|
|
||||||
|
function recursiveFib(seq) {
|
||||||
|
if (seq === 1) {
|
||||||
|
return [0];
|
||||||
|
} else if (seq === 2) {
|
||||||
|
// if (seq < 2) {
|
||||||
|
return [0, 1];
|
||||||
|
} else {
|
||||||
|
let arr = recursiveFib(seq - 1);
|
||||||
|
arr.push(arr[arr.length - 1] + arr[arr.length - 2]);
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let num = process.argv[2];
|
||||||
|
|
||||||
|
loopFib(num);
|
||||||
|
console.log(recursiveFib(num));
|
33
csci/mergeSort.js
Normal file
33
csci/mergeSort.js
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
function mergeSort(arr) {
|
||||||
|
if (arr.length <= 1) {
|
||||||
|
return arr;
|
||||||
|
} else {
|
||||||
|
let half = Math.round(arr.length / 2);
|
||||||
|
let leftSide = mergeSort(arr.slice(0, half));
|
||||||
|
let rightSide = mergeSort(arr.slice(half, arr.length));
|
||||||
|
|
||||||
|
let newArr = mergeArray(leftSide, rightSide);
|
||||||
|
|
||||||
|
return newArr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function mergeArray(left, right) {
|
||||||
|
let sorted = [];
|
||||||
|
|
||||||
|
while (left.length && right.length) {
|
||||||
|
if (left[0] < right[0]) {
|
||||||
|
sorted.push(left.shift());
|
||||||
|
} else {
|
||||||
|
sorted.push(right.shift());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sorted.concat(left, right);
|
||||||
|
}
|
||||||
|
let testCaseOne = [2, 1, 3, 9, 4, 5, 23, 10];
|
||||||
|
|
||||||
|
let testCaseTWo = [23, 5, 3, 1, 8, 7, 2, 4];
|
||||||
|
console.log(`Test Case No1: ${testCaseOne}`);
|
||||||
|
console.log(mergeSort(testCaseOne));
|
||||||
|
console.log(`Test Case No2: ${testCaseTWo}`);
|
||||||
|
console.log(mergeSort(testCaseTWo));
|
Loading…
Reference in a new issue