Skip to content

Commit 4adf352

Browse files
committed
Few more algorithms added...(two variations of insertion sort + binary search)
1 parent ce02bda commit 4adf352

File tree

5 files changed

+120
-0
lines changed

5 files changed

+120
-0
lines changed

src/searching/binary-search.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
var array = [5, 8, 53, 56, 123, 322, 400, 2356, 8000, 23333];
2+
3+
function binarySearch(array, key) {
4+
var middle = Math.round(array.length / 2),
5+
left = 0,
6+
right = array.length;
7+
while (right >= left) {
8+
if (array[middle] === key) {
9+
return middle;
10+
} else if (array[middle] > key) {
11+
right = middle - 1;
12+
} else {
13+
left = middle + 1;
14+
}
15+
middle = Math.floor((left + right) / 2);
16+
}
17+
return -1;
18+
}
19+
20+
console.log(array);
21+
console.log(5, binarySearch(array, 5));
22+
console.log(8, binarySearch(array, 8));
23+
console.log(53, binarySearch(array, 53));
24+
console.log(56, binarySearch(array, 56));
25+
console.log(123, binarySearch(array, 123));
26+
console.log(322, binarySearch(array, 322));
27+
console.log(400, binarySearch(array, 400));
28+
console.log(2356, binarySearch(array, 2356));
29+
console.log(8000, binarySearch(array, 8000));
30+
console.log(8001, binarySearch(array, 8001));
31+
console.log(23333, binarySearch(array, 23333));
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
var array = [5, 8, 53, 56, 123, 322, 400, 2356, 8000, 23333];
2+
3+
function binarySearch(array, key) {
4+
return recursiveBinarySearch(array, key, 0, array.length);
5+
}
6+
7+
function recursiveBinarySearch(array, key, left, right) {
8+
if (left > right)
9+
return -1;
10+
var middle = Math.floor((right + left) / 2);
11+
if (array[middle] === key)
12+
return middle;
13+
else if (array[middle] > key)
14+
return recursiveBinarySearch(array, key, left, middle - 1);
15+
else
16+
return recursiveBinarySearch(array, key, middle + 1, right);
17+
}
18+
19+
console.log(array);
20+
console.log(5, binarySearch(array, 5));
21+
console.log(8, binarySearch(array, 8));
22+
console.log(53, binarySearch(array, 53));
23+
console.log(56, binarySearch(array, 56));
24+
console.log(123, binarySearch(array, 123));
25+
console.log(322, binarySearch(array, 322));
26+
console.log(400, binarySearch(array, 400));
27+
console.log(2356, binarySearch(array, 2356));
28+
console.log(8000, binarySearch(array, 8000));
29+
console.log(8001, binarySearch(array, 8001));
30+
console.log(23333, binarySearch(array, 23333));

src/sorting/bubble-sort.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
var array = [3,5,2,4,7,9,6,4,5];
2+
3+
function bubbleSort(array) {
4+
var temp;
5+
for (var i = 0; i < array.length; i += 1) {
6+
for (var j = i; j > 0; j -= 1) {
7+
if (array[j] < array[j - 1]) {
8+
temp = array[j];
9+
array[j] = array[j - 1];
10+
array[j - 1] = temp;
11+
}
12+
}
13+
}
14+
return array;
15+
}
16+
17+
console.log(bubbleSort(array));
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
var array = [5,6,3,3,6,8,9,4,3];
2+
3+
function insertionBinarySort(array) {
4+
var current,
5+
middle,
6+
left,
7+
right;
8+
for (var i = 1; i < array.length; i += 1) {
9+
current = array[i];
10+
left = 0;
11+
right = i;
12+
middle = Math.floor((left + right) / 2);
13+
while (left < right) {
14+
if (array[middle] <= current)
15+
left = middle + 1;
16+
else
17+
right = middle - 1;
18+
middle = Math.floor((left + right) / 2);
19+
}
20+
for (var j = i; j > middle; j -= 1)
21+
array[j] = array[j - 1];
22+
array[j] = current;
23+
}
24+
return array;
25+
}
26+
27+
console.log(insertionBinarySort(array));
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
var array = [4,6,2,2,4,56,7,7,51,23,5,7];
2+
3+
function recursiveInsertionSort(array, max) {
4+
if (max <= 0)
5+
return array;
6+
if (max === undefined)
7+
max = array.length - 1;
8+
recursiveInsertionSort(array, max - 1);
9+
for (var i = max - 1, current = array[max]; i >= 0 && current < array[i]; i -= 1)
10+
array[i + 1] = array[i];
11+
array[i + 1] = current;
12+
return array;
13+
}
14+
15+
console.log(recursiveInsertionSort(array));

0 commit comments

Comments
 (0)