Skip to content

Commit c9ca66e

Browse files
author
zhenqiang
committed
添加binarysearch.js
1 parent db4a995 commit c9ca66e

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

code/search/binarysearch.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
function binarySearch(arr, target) {
2+
if (!Array.isArray(arr)) return arr;
3+
4+
arr.sort((l, r) => l - r);
5+
6+
let left = 0;
7+
let right = arr.length - 1;
8+
let middle;
9+
10+
while (left <= right) {
11+
middle = left + parseInt((right - left) / 2);
12+
13+
if (arr[middle] < target) {
14+
left = middle + 1;
15+
} else if (arr[middle] > target) {
16+
right = middle - 1;
17+
} else {
18+
return middle;
19+
}
20+
}
21+
22+
return -1;
23+
}
24+
25+
console.log(binarySearch([1, 2, 5], 5));
26+
console.log(binarySearch([1], 5));
27+
console.log(binarySearch([1, 5], 1));
28+
console.log(binarySearch([1, 5], 5));
29+
console.log(binarySearch([]));

0 commit comments

Comments
 (0)