-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbinarySearch.js
More file actions
30 lines (25 loc) · 850 Bytes
/
binarySearch.js
File metadata and controls
30 lines (25 loc) · 850 Bytes
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
let binarySearch = (numArray, myNumber, cb) => {
let arrayLength = numArray.length;
let middleIndex = Math.floor(arrayLength/2);
if (numArray[middleIndex] == myNumber) {
return cb(null, true);
} else if (numArray.length <= 1) {
return cb(null, false);
} else if(numArray[middleIndex] > myNumber) {
numArray = numArray.slice(0, middleIndex);
binarySearch(numArray, myNumber, cb);
} else if (numArray[middleIndex] < myNumber) {
numArray = numArray.slice(middleIndex, numArray.length);
binarySearch(numArray, myNumber, cb);
}
};
binarySearch([5, 7, 12, 16, 36, 39, 42, 56, 71], 56, (err, flag) => {
if (err) {
} else {
if (flag) {
console.log('Number found.');
} else {
console.log('Number not found.');
}
}
});