Skip to content

Commit 797f45f

Browse files
merge sort complete
1 parent 868b8e9 commit 797f45f

File tree

2 files changed

+44
-23
lines changed

2 files changed

+44
-23
lines changed

Sorting-Algos/merge-sort.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { sortedMergeSort } = require("./sorted-merge-sort");
2+
3+
const mergeSort = (inputUnsortedArr) => {
4+
if (inputUnsortedArr.length <= 1) return inputUnsortedArr;
5+
let mid = Math.round(inputUnsortedArr.length / 2),
6+
leftArr = mergeSort(inputUnsortedArr.slice(0, mid)),
7+
rightArr = mergeSort(inputUnsortedArr.slice(mid));
8+
console.log(`mid: ${mid}, leftArr: ${leftArr}, rightArr: ${rightArr}`);
9+
return sortedMergeSort(leftArr, rightArr);
10+
}
11+
12+
console.log(mergeSort([10, 53, 0, 34]));

Sorting-Algos/sorted-merge-sort.js

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
const sortedArr1 = [1, 10, 50];
22
const sortedArr2 = [2, 14, 99, 100, 134, 345];
33

4+
const args = process.argv.slice(1);
5+
46
const sortedMergeSort = (inputSortArr1, inputSortArr2) => {
57
let totalIterations = 0, resultArr = [];
68

@@ -19,37 +21,44 @@ const sortedMergeSort = (inputSortArr1, inputSortArr2) => {
1921
totalIterations++;
2022
}
2123

22-
if (i < inputSortArr1.length)
23-
while (i < inputSortArr1.length) {
24-
totalIterations++
25-
resultArr.push(inputSortArr1[i])
26-
i++
27-
}
28-
if (j < inputSortArr2.length)
29-
while (j < inputSortArr2.length) {
30-
totalIterations++
31-
resultArr.push(inputSortArr2[j])
32-
j++
33-
}
24+
while (i < inputSortArr1.length) {
25+
totalIterations++
26+
resultArr.push(inputSortArr1[i])
27+
i++
28+
}
29+
30+
while (j < inputSortArr2.length) {
31+
totalIterations++
32+
resultArr.push(inputSortArr2[j])
33+
j++
34+
}
3435

3536
console.log(`totalIterations: ${totalIterations}, inputSortArr1: ${inputSortArr1.length}, inputSortArr2: ${inputSortArr2.length}, resultArr: ${resultArr.length}`)
3637
return resultArr;
3738
}
3839

40+
const runTestCases = () => {
41+
console.log(sortedMergeSort(sortedArr1, sortedArr2))
42+
console.log('==============================================')
3943

40-
console.log(sortedMergeSort(sortedArr1, sortedArr2))
41-
console.log('==============================================')
44+
console.log(sortedMergeSort([3, 7, 12, 19, 25, 31, 42, 56, 68, 77], [2, 5, 9, 14, 22, 30, 41, 53, 67, 80]))
45+
console.log('==============================================')
4246

43-
console.log(sortedMergeSort([3, 7, 12, 19, 25, 31, 42, 56, 68, 77], [2, 5, 9, 14, 22, 30, 41, 53, 67, 80]))
44-
console.log('==============================================')
47+
console.log(sortedMergeSort([1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 54], [4, 8, 15, 23, 31, 37, 42, 50, 58, 64]))
48+
console.log('==============================================')
4549

46-
console.log(sortedMergeSort([1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 54], [4, 8, 15, 23, 31, 37, 42, 50, 58, 64]))
47-
console.log('==============================================')
50+
console.log(sortedMergeSort([3, 6, 109], []))
51+
console.log('==============================================')
4852

49-
console.log(sortedMergeSort([3, 6, 109], []))
50-
console.log('==============================================')
53+
console.log(sortedMergeSort([], []))
54+
console.log('==============================================')
55+
56+
console.log(sortedMergeSort('array', [2, 3]))
57+
console.log('==============================================')
58+
}
5159

52-
console.log(sortedMergeSort([], []))
53-
console.log('==============================================')
60+
if (args.includes('test')) { runTestCases() }
5461

55-
console.log(sortedMergeSort('array', [2, 3]))
62+
module.exports = {
63+
sortedMergeSort
64+
}

0 commit comments

Comments
 (0)