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);
二分法查找有序数组
最新推荐文章于 2023-05-12 18:46:31 发布