let arr = [0, 1, 2, 4, 5, 6, 7, 8];
BinarySearch(arr, 2);
function BinarySearch(arr, target) {
// 定义变量
let start = 0;
let end = arr.length - 1;
let mid = Math.floor((start + end) / 2);
let sortTag = arr[start] <= arr[end];
// 二分查找
while (start < end && arr[mid] !== target) {
if (target < arr[mid]) {
sortTag && (end = mid - 1);
!sortTag && (start = mid + 1);
} else {
!sortTag && (end = mid - 1);
sortTag && (start = mid + 1);
}
mid = Math.floor((start + end) / 2);
}
// 检查结果
if (arr[mid] == target) {
console.log('找到了,位置%s', mid);
return mid;
} else {
console.log('没找到');
return -1;
}
}