算法:二分查找实现

119 阅读1分钟

let list = [1,3,5,7,9]
function computed(list,item){ //list代表数组,item要找的数值
	let max = list.length - 1 //最后一位
	let min = 0  //第一位
	let index = 0 //步数
	let guess = 0 //猜测的位数
	while(min<max){
		guess = parseInt((min+max)/2) //折中取整
		index++
		if(list[guess]<item){ //如果取到的数字小于目标值,则min往后增加一位
			min++
		}else if(list[guess]>item){//如果取到的数字大于目标值,则max往前增加一位
			max--
		}else if(list[guess]==item){ 相等返回
			console.log(index,'步数')
			return list[guess]
		}
	}
}
console.log(computed(list,3))