博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
binarySearch二分查找——Javascript实现
阅读量:5298 次
发布时间:2019-06-14

本文共 741 字,大约阅读时间需要 2 分钟。

在很早之前,我就写过了一篇也关于二分法的相关博文:。当时是用二分法进行快速排序,其实和这次思路大致相当。二分查找最重要的一个条件,就是需要将数组是有序的方可进行查找,这里更多的是从小到大的排列顺序。

一起来想想大致的思路:

1. binarySearch函数需要接收的参数是:一个预先排序好的数组,一个需要查找的目标值,左边界和右边界。2. 让数组的中值和目标值比较,若相等,则返回中值所在的序号,函数结束。若不相等,进行第三步3. 不相等,则进行大小比较,若目标比中值小,则范围缩小到左边界到中值,并重新返回第一步。反之,范围缩小到中值到右边界,返回第一步。4. 找不到则是,中值序号等于左边界或右边界,返回-1。
function bSearch(arr, target, start = 0, end = arr.length - 1) {  const midIndex = Math.ceil((start + end) / 2)  const midValue = arr[midIndex]    if(target === midValue) return midIndex  if(start === midIndex || end === midIndex) return -1  if(target < midValue) return bSearch(arr, target, start, midIndex - 1)  if(target > midValue) return bSearch(arr, target, midIndex + 1, end)}

转载于:https://www.cnblogs.com/YikaJ/p/4387909.html

你可能感兴趣的文章
更新下载库update绝对详解
查看>>
SDUTOJ3754_黑白棋(纯模拟)
查看>>
Scala入门(1)Linux下Scala(2.12.1)安装
查看>>
laravel
查看>>
installing the matplotlib via pip in the enviroment dos
查看>>
bzoj3312: [Usaco2013 Nov]No Change
查看>>
如何改善下面的代码 领导说了很耗资源
查看>>
Quartus II 中常见Warning 原因及解决方法
查看>>
高德地图 – 1.问题集锦
查看>>
php中的isset和empty的用法区别
查看>>
Android ViewPager 动画效果
查看>>
Android UI-仿微信底部导航栏布局
查看>>
MySQL 第六天
查看>>
python 笔记一
查看>>
pip和easy_install使用方式
查看>>
博弈论
查看>>
Redis sentinel & cluster 原理分析
查看>>
我的工作习惯小结
查看>>
把word文档中的所有图片导出
查看>>
Spring 自动装配;方法注入
查看>>