• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Ruby实现二分搜索(二分查找)算法的简单示例

    在计算机科学中,二分搜索(英语:binary search),也称折半搜索(英语:half-interval search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

    复杂度分析
    时间复杂度:
    折半搜索每次把搜索区域减少一半,时间复杂度为。(n代表集合中元素的个数)
    空间复杂度:
    虽以递归形式定义,但是尾递归,可改写为循环。

    Ruby代码示例

    def binseaech(arr, i)
      low, high = 0, arr.size - 1
      while (low  high)
        mid = (low + high)/2
        if arr[mid]  i
          low = mid + 1
        elsif arr[mid] > i
          high = mid - 1
        else
          return mid
        end
      end
    end
    
    arr = [1,3,12,34,35,46,91,108]
    puts binseaech(arr, 91)
    
    

    结果:

    6
    [Finished in 0.1s]
    

    您可能感兴趣的文章:
    • Ruby实现的各种排序算法
    • ruby实现的插入排序和冒泡排序算法
    • Ruby实现的矩阵连乘算法
    • Ruby实现的3种快速排序算法
    • Ruby实现的合并排序算法
    • Ruby实现的最优二叉查找树算法
    • Ruby实现的图片滤镜算法代码
    上一篇:Ruby on Rails实现最基本的用户注册和登录功能的教程
    下一篇:Ruby on Rails框架程序连接MongoDB的教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Ruby实现二分搜索(二分查找)算法的简单示例 Ruby,实现,二分,搜索,查找,