首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[分享]算法-二分法查找

发布于 2024-12-09 10:57:08
1
143

方法介绍:该方法为二分法查找,实现通过二分法快速找到元目标素在数组中的位置。思路:将数组从中间分为两部分,用中间元素和目标元素比较,如果比目标元素小,则再把数组后半部分分为两部分....,从而避免挨个...

  • 方法介绍:
    该方法为二分法查找,实现通过二分法快速找到元目标素在数组中的位置。

  • 思路:
    将数组从中间分为两部分,用中间元素和目标元素比较,如果比目标元素小,则再把数组后半部分分为两部分....,从而避免挨个遍历比较

  • 输入:
    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)
评论 (1)
一个月内的热帖推荐
久久在线
Lv.1普通用户

551

帖子

21

小组

2050

积分

赞助商广告
站长交流