转自:https://blog.csdn.net/u012194956/article/details/79103843

二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。

二分法查找的思路如下:

(1)首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。

(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。

(3)如果某一步数组为空,则表示找不到目标元素。

二分法查找的时间复杂度O(logn)。

---------------------

非递归算法:

function binarySearch(arr,key){

var low=0; //数组最小索引值

var high=arr.length-1; //数组最大索引值

while(low<=high){

var mid=Math.floor((low+high)/2);

if(key==arr[mid]){

return mid;

}else if(key>arr[mid]){

low=mid+1;

}else{

high=mid-1;

}

}

return -1; //low>high的情况,这种情况下key的值大于arr中最大的元素值或者key的值小于arr中最小的元素值

}

---------------------

递归算法:

function binarySearch(arr,low,high,key){

if(low>high){return -1;}

var mid=Math.floor((low+high)/2);

if(key==arr[mid]){

return mid;

}else if(key

high=mid-1;

return binarySearch(arr,low,high,key);

}else{

low=mid+1;

return binarySearch(arr,low,high,key);

}

}

mysql二分法查找亿行_算法——二分法查找(binarySearch)相关推荐

  1. c语言二分法查找一个数_算法竞赛小专题系列(1):二分法、三分法

    本系列是这本算法教材的扩展资料:<算法竞赛入门到进阶>. 罗勇军.郭卫斌. 清华大学出版社 二分法和三分法是算法竞赛中常见的算法思路,本文介绍了它们的理论背景.模板代码.典型题目. 1. ...

  2. dataframe 查找特定值_省时省力的查找引用函数

    如果觉得文章对你有帮助,欢迎点赞.转发.收藏欢迎关注头条号:数据分析鱼,你们的支持是我坚持码字的不懈动力! 上篇文章分享了日期和时间函数,这篇介绍查找引用函数.在数据量非常少的时候 ,可能并不需要使用 ...

  3. c语言二分法查找一个数_算法简解-二分查找

    读书不记录=没读,始终是我的信条·····最近因为要参加竞赛,发现自己真的差的很远,所以打算重新开始学习一遍算法及AI的相关数学知识,相信很多人都是闻数学,理工科色变,之前也是觉得上数理课太难了,真的 ...

  4. MySQL探秘(七):InnoDB行锁算法

     在上一篇<InnoDB一致性非锁定读>中,我们了解到InnoDB使用一致性非锁定读来避免在一般的查询操作(SELECT FOR UPDATE等除外)时使用锁.然而锁这个事情是无法避免的, ...

  5. mysql编辑前200行_巧妙使用SQL Server编辑前200行功能

    在SQL Server 2005/2008/2008 R2中,我们可以使用SQL Server自带的编辑前200行功能,使用这个功能的本意是简化Update 的使用,让开发人员.DBA和不懂T-SQL ...

  6. mysql怎么打开命令行_怎么在命令行打开mysql?

    在命令行打开mysql的方法:首先在cmd命令行中输入"net start mysql":然后输入"mysql -hlocalhost -uroot -p",回 ...

  7. mysql 获取日期每行_我如何从MySQL表行获取日期和时间

    我发现了一个旧的博客脚本(非常老)在我的PC上踢脚.即时通讯从我的数据库获取日期和时间麻烦,以显示在PHP中.有人可以帮助我. 这是我的MySQL数据库设置. CREATE TABLE blog_po ...

  8. mysql返回前2行_取得前一次MySQL操作所影响的记录行数

    转载:http://blog.csdn.net/militala/article/details/5996510> mysql_affected_rows() 返回近来一次与 连接句柄 联系关系 ...

  9. 查找重复文件_重复文件查找和磁盘整理工具:Tidy Up

    为大家带来一款实用的重复文件查找和磁盘整理工具,Tidy Up 5 for Mac可以用来快速查找重复文件并整理硬盘,tidy up 5 mac特别版会根据文件的种类组织分离找到项目,非常的好用. t ...

最新文章

  1. CentOS系统安装(上):图形/文本界面安装
  2. 2022.3.14矮牵牛
  3. 全栈工程师--这才是真正的从入门到跑路
  4. 【Qt】Qt5.12连接MySQl5.7(亲自测试成功)
  5. springboot防止XSS攻击和sql注入
  6. java中图片与像素矩阵转换,java - Java中具有矩阵乘法的图片转换不起作用 - 堆栈内存溢出...
  7. Palo Alto Networks下一代安全平台五大创新功能:云安全为重中之重
  8. 单列变双列css_css – 右对齐双列布局丢失水平滚动条
  9. 第一次申请去美国面签,需要注意哪些事项提高成功率?
  10. 某微型计算机字长为8位,单片机课后习题答案 - 图文
  11. 走过电竞之路的程序员
  12. win7摄像头软件_【pc软件】功能强大的GIF动图制作录制工具,秒杀
  13. OTA 差分升级包的制作
  14. 中级财务管理机考计算机,2017年中级会计师考试无纸化机考技巧
  15. 59. 螺旋矩阵 II(中等 数组)
  16. vue3 watch 异步方法
  17. 《算法和数据结构》排序篇
  18. IPFS(三)源码解读之-add
  19. 解决 卸载Mysql后,服务还在的问题
  20. Android 实现全屏截图、剪裁图片、分享图片至其他应用进程功能(踩坑记录)

热门文章

  1. Golang 受欢迎的原因:大道至简
  2. isdigit()、isalpha()、isalnum() 三个函数的区别和注意点
  3. Centos7.4 yum 安装MariaDB
  4. Object.assign()怎么用?
  5. 【.Net】C#实现多线程的方式:使用Parallel类
  6. 通过js适配不同的屏幕大小
  7. 字体乱码的时候,可以使用英文下的写法
  8. N天学习一个Linux命令之帮助命令:man
  9. UIView设置背景渐变色
  10. NO.55 网页中压缩的问题