算法学习笔记一一二分查找

什么是二分查找

二分查找也叫折半查找,是在有序数组查找特定元素的算法。算法的时间复杂度为O(logn)。

算法原理

  1. 定义一个有序数组, 初始化left数组第一个元素序号,right为数组最后一个元素序号,middle为left和right中间元素序号。
  2. 首先将要查找的元素val与list[middle]比较,若相等返回middle。
  3. 若val大于list[middle],则说明要查找的元素在middle右半边,对右半部分进行查找。left = middle + 1
  4. 若val小于list[middle],则说明要查找的元素在middle左半边,对左半部分进行查找。right = middle + 1
  5. 重复上述步骤,知道left < right (查找失败,数组中无此元素)。

示例代码(python)

def binary_search(list, val):
    left = 0 # 数组的第一个元素
    right = len(list) - 1 # 数组的最后一个元素

    while left <= right:
        middle = (left + right) // 2 # 向下取整
        if val == list[middle]:
            return middle
        elif val > list[middle]:
            left = middle + 1
        elif val < list[middle]:
            right = middle - 1
    return -1
posted @   Monster_bird  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示