方法介绍:该方法为二分法查找,实现通过二分法快速找到元目标素在数组中的位置。思路:将数组从中间分为两部分,用中间元素和目标元素比较,如果比目标元素小,则再把数组后半部分分为两部分....,从而避免挨个...
方法介绍:
该方法为二分法查找,实现通过二分法快速找到元目标素在数组中的位置。
思路:
将数组从中间分为两部分,用中间元素和目标元素比较,如果比目标元素小,则再把数组后半部分分为两部分....,从而避免挨个遍历比较
输入:
paraArr 有序数组,paraFind 要找的目标元素
输出:
要找的元素在数组中的位置,如果没找到返回null
const Bisection = (paraArr, paraFind) => {
if (!paraArr.length || paraArr.length <= 1) {
return null
}
let low = 0
let high = paraArr.length - 1
while (low <= high) {
let mid = parseInt((low + high) / 2)
if (paraArr[mid] == paraFind) {
return mid
} else if (paraArr[mid] > paraFind) {
high = mid - 1
} else {
low = mid + 1
}
}
return null
}
let arr = [1, 2, 3, 4, 5]
let find = 8
let index = Bisection(arr, find)
console.log(index)