代码举例说明
时间: 2023-07-02 08:17:38 浏览: 99
华中数控车床编程举例说明.doc
以下是一个简单的二分查找的 Python 代码示例:
```
def binary_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
```
该函数接受一个有序数组 `nums` 和一个要查找的目标值 `target` 作为参数。在函数中,我们首先初始化左右指针 `left` 和 `right` 分别指向数组的起始和结束位置,然后不断进行二分查找,直到找到目标值或者区间缩小到无法继续查找。具体的查找过程如下:
1. 计算中间位置 `mid`,即 `mid = (left + right) // 2`
2. 如果 `nums[mid]` 等于目标值 `target`,则找到了目标值,返回 `mid`
3. 如果 `nums[mid]` 小于目标值 `target`,则说明目标值可能在右半部分,将左指针 `left` 移动到 `mid + 1`
4. 如果 `nums[mid]` 大于目标值 `target`,则说明目标值可能在左半部分,将右指针 `right` 移动到 `mid - 1`
5. 重复以上步骤,直到左指针 `left` 大于右指针 `right`,此时说明目标值不存在于数组中,返回 `-1`。
该函数的时间复杂度为 O(log n),因为每次循环都将查找区间缩小一半,最坏情况下需要进行 log2n 次比较。
阅读全文