你能够帮我写一个二分查找算法吗
时间: 2023-05-23 18:02:45 浏览: 68
?当然可以,这是一个常见的算法,下面是一个示例的二分查找算法的代码:
```python
def binary_search(array, item):
left = 0
right = len(array) - 1
while left <= right:
mid = (left + right) // 2
if array[mid] == item:
return mid
elif array[mid] < item:
left = mid + 1
else:
right = mid - 1
return None
```
这个算法的时间复杂度是 O(log n),其中 n 是数组的长度。
相关问题
帮我写一个二分查找算法
当然可以!以下是一个简单的二分查找算法的 Python 代码示例:
```python
def binary_search(arr, target):
"""
在已排序的列表arr中查找目标值target。
如果找到,返回目标值的索引;否则返回-1。
"""
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
```
该算法的时间复杂度为 O(log n),其中 n 为列表的大小。
用c++帮我写一个二分查找算法
当然可以!以下是一个简单的二分查找算法的 C++ 代码示例:
```cpp
int binary_search(vector<int>& arr, int target) {
int left = 0, right = arr.size() - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
```
该算法的时间复杂度为 O(log n),其中 n 为列表的大小。