广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    如何使用折半查找找出指定元素所在位置

    来源:网络收集  点击:  时间:2024-03-07
    【导读】:
    折半查找又称二分法,本文举例介绍如何使用折半查找找出指定元素所在位置。方法/步骤1/6分步阅读

    首先定义3个用来记录索引值的变量,变量min记录当前范围最小索引值,初始值为0;变量max记录当前范围最大索引值,初始值为数组长度-1;变量mid记录当前当前范围最中间元素的索引值,初始值为(min+max) / 2

    2/6

    然后使用循环,判断当前范围下,最中间元素值与指定查找的数值是否相等

    若相等,结束循环,返回当前范围最中间元素的索引值mid

    若不相等,根据比较结果,缩小查询范围为上一次查询范围的一半

    如果中间元素值 比 要查询的数值大,说明要查询的数值在当前范围的最小索引位置与中间索引位置之间,此时,更新查询范围为:

    范围最大索引值 = 上一次中间索引位置 -1;

    3/6

    如果中间元素值 比 要查询的数值小,说明要查询的数值在当前范围的最大索引位置与中间索引位置之间,此时,更新查询范围为:

    范围最小索引值 = 上一次中间索引位置 +1;

    在新的查询范围中,更新中间元素值的位置,再次使用最中间元素值与指定查找的数值是否相等。

    中间索引值 = (范围最小索引值 +范围最大索引值) / 2;

    4/6

    具体查找例子如下图:

    5/6

    每次查询范围缩小一半后,使用if语句判断,查询范围是否小于0个元素,若小于0个元素,则说明指定数值没有查询到,返回索引值-1。实现代码如下:

    6/6

    让我们来再看一个例子,我们通过3次折半查找,找到20这个值。具体步骤如下图:

    学习算法折半查找
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_278411.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 12:43:28  耗时:0.024
    0.0239s