function halfSearch(arr, target) {
let start = 0;
let end = arr.length - 1;
if (!end) return -1
if (end == 1) {
return arr[0] === target ? 0 : -1
}
let middle;
while (start <= end) {
middle = (start + end) / 2 | 0; // 向下取整
if (arr[middle] === target) {
return middle
} else if (target > arr[middle]) {
start = middle + 1
} else {
end = middle - 1
}
}
return -1
}
var arr = [1, 2, 3, 5, 6, 7, 8, 10];
var index = halfSearch(arr, 3);
console.log(index);
04-12
861
09-10
163
03-14
1252
04-10
1850
07-04