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
fb92000290
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