forked from JCarlosR/Sorting-Algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBinarySearch.js
More file actions
51 lines (44 loc) · 1.09 KB
/
BinarySearch.js
File metadata and controls
51 lines (44 loc) · 1.09 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
iterative = function (data, target){
var start = 0;
var end = data.length - 1;
while (start <= end){
var middle = Math.floor((start + end) / 2);
if (target < data[middle]){
end = middle - 1;
}
else if (target > data[middle]){
start = middle + 1;
}
else {
return true;
}
}
return false;
}
recursive = function (data, target, start, end) {
if (start > end) {
return false;
}
else {
var middle = Math.floor((start + end) / 2);
if (target === data[middle]) {
return true;
} else if (target < data[middle]) {
return recursive(data, target, start, middle - 1);
} else {
return recursive(data, target, middle + 1, end);
}
}
}
/* Test data
var data = [5,12,16,18,23,27,28,34,38,43,47,50,53,59];
var target = 39;
if (iterative(data, target)){
console.log("True");
}
else {console.log("False");}
if (recursive(data, target, 0, data.length - 1)){
console.log("True");
}
else {console.log("False");}
*/