add binary search in js (#31)
parent
3a1a05fc08
commit
6c8e1697ea
|
@ -15,6 +15,7 @@
|
||||||
### JavaScript
|
### JavaScript
|
||||||
|
|
||||||
1. [Linear Search](js/linear-search.js)
|
1. [Linear Search](js/linear-search.js)
|
||||||
|
2. [Binary Search](js/binary-search.js)
|
||||||
|
|
||||||
### Java
|
### Java
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
function binarySearch(value, list) {
|
||||||
|
let first = 0; //left endpoint
|
||||||
|
let last = list.length - 1; //right endpoint
|
||||||
|
let position = -1; // After looping if the search item is not found, we will return -1
|
||||||
|
let found = false; // When item is found we set its value to true
|
||||||
|
let middle;
|
||||||
|
|
||||||
|
while (found === false && first <= last) {
|
||||||
|
middle = Math.floor((first + last)/2);
|
||||||
|
if (list[middle] == value) { // If the element is present at the middle itself
|
||||||
|
found = true;
|
||||||
|
position = middle;
|
||||||
|
} else if (list[middle] > value) { //if in lower half
|
||||||
|
last = middle - 1;
|
||||||
|
} else { //in in upper half
|
||||||
|
first = middle + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(binarySearch(6,[2, 6, 8])); //expected output = 1
|
||||||
|
console.log(binarySearch(10,[2, 3, 10, 14])); //expected output = 2
|
||||||
|
console.log(binarySearch(1,[2, 6, 8])); //expected output = -1
|
Loading…
Reference in New Issue