欢迎光临
我们一直在努力

插入位置:二分查找算法实现

"""
插入位置
给定一个排序数组和一个目标值
在数组中查找,如果找到目标值,返回其数组下标,
如果未找到,返回其将会被按顺序插入的位置。
"""

def binary_search(nums, target):
    """
    二分查找算法实现。

    在一个已排序的数组中查找目标值,并返回其索引。如果目标值不存在,则返回插入点。

    参数:
    nums: 一个已排序(升序)的整数列表。
    target: 需要查找的目标整数。

    返回:
    目标值在列表中的索引,如果不存在,则返回插入点的索引。
    """
    # 初始化数组长度
    length = len(nums)
    # 初始化左右指针
    left = 0
    right = length - 1
    # 初始化结果变量,假设初始插入点在数组末尾
    result = length
    # 当左指针不大于右指针时,进行循环
    while left <= right:
        # 计算中间位置,使用位运算提高计算效率
        mid = (left + right) >> 1
        # 如果目标值小于等于中间位置的值,说明目标值在左侧或当前位置
        if target <= nums[mid]:
            # 更新右指针,缩小查找范围
            right = mid - 1
            # 更新结果变量为当前中间位置
            result = mid
        else:
            # 否则,目标值在右侧,更新左指针
            left = mid + 1
    # 返回结果变量,即插入点的索引
    return result

# 调用二分查找函数,并打印结果
print(binary_search([7, 10, 63, 68, 71, 84, 96], 77))
赞(0) 打赏
未经允许不得转载:创想未来 » 插入位置:二分查找算法实现

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册