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