二分查找法

1. 理论基础

当我们要从一个序列中查找一个元素的时候,最快想到的方法就是顺序查找法,但这种方法仅仅是暴力的把每个元素都排查一遍,元素个数少的时候还可以,一旦元素个数很多,效率就会非常低下。

1.1 概念

二分查找算法也叫折半查找算法。该算法要求数组数据要采用顺序存储有序排列,每次通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素。

1.2 前提条件

(1)查找的序列必须是有序的。有序是指所有元素是按照升序或降序排列好的,元素与元素之间的差值是随机的。

(2)查找的元素只能是一个,不能实现多值查找。

1.3 基本思路

先找到有序序列的中间元素mid,然后拿它跟要找的目标元素进行对比,就可以初步判断目标元素的所在范围,既然查找范围已经确定,则该范围之外的元素就可以不用找了。按照上面的步骤反复查找下去直到找到目标元素为止。

1.4 时间复杂度

二分查找每一次查找都可以缩减一半的查找范围,则其时间复杂度为\log_2 N .

举例:若共有2^32个元素,则采用二分查找最多32次就可以找到目标,但是采用顺序查找的方法最多需要查找4294967296次。

2 编程实现

写在最后:文章是在学习过程中做的学习笔记,同时与志同道合者分享,文章内容均经过我自己实验证实可行,如有问题欢迎留言,很高兴一起交流讨论,共同进步!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:树的基本概念 什么是树? 树(Tree)是一种用来模拟具有树状结构性质的数据集合。它是由 n(n > 0) 个...
    憨憨二师兄阅读 1,348评论 0 2
  • 导读 曾几何时学好数据结构与算法是我们从事计算机相关工作的基本前提,然而现在很多程序员从事的工作都是在用高级程序设...
    风平浪静如码阅读 580评论 0 2
  • 虽然前端对于算法的要求并不高,但是工作和面试偶尔还是会遇到排序算法和二分查找法。笔者通过这篇文章对排序和查找简单总...
    Lee_YJ阅读 536评论 0 1
  • Java实现二分查找算法 二分查找(binary search),也称折半搜索,是一种在 有序数组 中 查找某一特...
    KeisezrG阅读 872评论 0 0
  • 优缺点 二分查找又称折半查找。 优点:比较次数少,查找速度快,平均性能好。 缺点:要求待查表为有序表,且插入删除困...
    linheimx阅读 1,185评论 0 1

友情链接更多精彩内容