<script>
let array = [1.2, 2.3, 2.6, 3.5, 4.8, 6.7, 7.7, 8.9];
let leftIndex = 0;
let rightIndex = array.length-1;
// let element = 4.8;
for(let i=0; i<array.length; i++){
let index = binarySearch(array, leftIndex, rightIndex, array[i]);
console.log(index);
}
// 尝试用递归的方式实现对一个有序数组的元素查找
// 输入一个有序数组的地址,查找范围(leftIndex到rightIndex)和要查找的元素,输出元素所在的index,如果没找到,就返回-1
function binarySearch(array, leftIndex, rightIndex, element){
if(leftIndex > rightIndex){
return -1;
}
else {
let middleIndex = Math.floor((leftIndex + rightIndex) / 2);
if(array[middleIndex]==element){
return middleIndex;
}
else if(array[middleIndex] < element){
return binarySearch(array, middleIndex+1, rightIndex, element);
}
else {
return binarySearch(array, leftIndex, middleIndex-1, element);
}
}
}
</script>
二分法查找(递归)
最新推荐文章于 2022-03-18 10:32:09 发布