// 定义二分查找函数
function binar_serch(list,item){ //传入需要查找的数组和查找对象
// 定义查找的索引值 跟踪查找的列表部分
let low = 0;
let hight = list.length;
// 只剩下一个元素才停止while循环保证拿到查找对象的下标
while(low<=hight){
// 向下取整避免奇数函数不生效 取中间元素开始查找
let mid = Math.floor((low + hight)/2);
let guess = list[mid];
if(guess == item){ //找到元素reutrn停止并返回查找对象对应下标
return mid
}
if(guess > item){
hight = mid -1 //大于查找对象的话去掉大于那一半的数组的值再循环while判断
}else{
low = mid +1 //同上,对象为小于
}
}
}
my_list = [1,3,5,7,9]
console.log(binar_serch(my_list,3)) //得到要查找值的对应数组下标
console.log(binar_serch(my_list,2)) //若数组不存在查找对象则会得到undefined