欢迎并且感谢交流区探讨和指正
寻找一个数
不等号是否应该带等号,mid 是否应该加一等等
分析这些细节的差异以及出现这些差异的原因
二分查找,要求数据结构为顺序存储的线性表,即数组,且数组中的元素按关键字有序排列
目的是从一堆数中找出是否存在符合条件的数
/**
* @param {number[]} nums 输入的有序数组
* @param {number} target 目标数
* @return {number} 返回目标数所在下标
*/
function binarySearch(nums, target) {
if (nums.length === 0) return -1
var L = 0
var R = nums.length - 1
while (L <= R) {
var mid = Math.floor((L + R) / 2)
// 由于JS的 / 不会自动向下取整,所以这里要手动取整
// mid = L + (R - L) / 2
// 防止当 L 和 R 太大,相加导致溢出(JS会溢出吗)
if (nums[mid] === target) return mid
else if (nums[m