forked from TheAlgorithms/JavaScript
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBinarySearch.js
More file actions
Latest commit
33 lines (27 loc) · 1.07 KB
/
Copy pathBinarySearch.js
File metadata and controls
33 lines (27 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* @function BinarySearch
* @description Search the integer inside the sorted integers array using Binary Search Algorithm.
* @param {Integer[]} arr - sorted array of integers
* @param {Integer} low - The input integer
* @param {Integer} high - The input integer
* @param {Integer} searchValue - The input integer
* @return {Integer} - return index of searchValue if found else return -1.
* @see [BinarySearch](https://en.wikipedia.org/wiki/Binary_search_algorithm)
*/
constbinarySearch=(arr,searchValue,low=0,high=arr.length-1)=>{
// base case
if(high<low||arr.length===0)return-1
constmid=low+Math.floor((high-low)/2)
// If the element is present at the middle
if(arr[mid]===searchValue){
returnmid
}
// If element is smaller than mid, then
// it can only be present in left subarray
if(arr[mid]>searchValue){
returnbinarySearch(arr,searchValue,low,mid-1)
}
// Else the element can only be present in right subarray
returnbinarySearch(arr,searchValue,mid+1,high)
}
export{binarySearch}