在旋转的排序数组中搜索数字是一个经典的二分查找问题。在这个问题中,给定一个旋转的排序数组和一个目标数字,要求判断目标数字是否在数组中出现,并返回其索引位置。
旋转排序数组是一个升序排列的数组在某个位置上被旋转,例如4,5,6,7,0,1,2。
要解决这个问题,可以使用二分查找算法。具体步骤如下:
以下是一个Python实现的示例代码:
def search(nums, target):
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
return mid
elif nums[mid]< target:
left = mid + 1
else:
right = mid - 1
return -1
这个算法的时间复杂度为O(log n),其中n是数组的长度。
领取专属 10元无门槛券
手把手带您无忧上云