写下二分查找 python
时间: 2023-10-28 07:00:04 浏览: 91
二分查找是一种高效的查找算法,它针对的是一个有序的数据集合。在Python中,可以使用以下代码实现二分查找:
```python
class Solution:
def search(self, nums: List[int], target: int) -> int:
l, r = 0, len(nums) - 1
while l <= r:
mid = (l + r) // 2
if nums[mid > target:
r = mid - 1
elif nums[mid < target:
l = mid + 1
else:
return mid
return -1
```
上述代码中的`nums`是已经按照从小到大排序的列表,`target`是要查找的目标元素。在每一次循环中,我们将待查找的区间通过计算中间元素的索引`mid`来缩小一半。如果中间元素大于目标元素,则将右边界`r`更新为`mid - 1`;如果中间元素小于目标元素,则将左边界`l`更新为`mid + 1`;如果中间元素等于目标元素,则返回该元素的索引。如果最终没有找到目标元素,则返回-1。
需要注意的是,二分查找中涉及到很多边界条件。具体来说,一种常见的写法是使用`while(first <= last)`,对应的是`last = mid_index - 1`;另一种写法是使用`while(first < last)`,对应的是`last = mid_index`。这些细节需要根据具体的情况来确定。
因此,通过以上的代码示例,你可以在Python中实现二分查找算法。
阅读全文