"""
插入位置
给定一个排序数组和一个目标值
在数组中查找,如果找到目标值,返回其数组下标,
如果未找到,返回其将会被按顺序插入的位置。
"""
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))
插入位置:二分查找算法实现
未经允许不得转载:创想未来 » 插入位置:二分查找算法实现

创想未来
评论前必须登录!
注册