用c++帮我写一个二分查找算法
时间: 2023-08-04 12:17:13 浏览: 42
当然可以!以下是一个简单的二分查找算法的 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 为列表的大小。
相关问题
用C++帮我写一个二分查找
好的,我可以帮您写一个二分查找算法。以下是示例代码:
```c
int binary_search(int arr[], int n, int target) {
int left = , right = n - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
```
这个函数接受一个整数数组、数组长度和目标值作为参数,返回目标值在数组中的下标,如果目标值不存在于数组中,则返回 -1。
用c++写一个二分查找算法
当然可以,以下是一个简单的二分查找算法的 C 代码:
```
int binary_search(int arr[], int n, int target) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
```
其中,`arr` 是一个已经排好序的数组,`n` 是数组的长度,`target` 是要查找的目标值。函数返回目标值在数组中的下标,如果目标值不存在,则返回 -1。
希望这个代码能够帮到你!