二分查找需要自己输入数组的代码
时间: 2023-05-13 08:06:01 浏览: 54
当然可以,以下是一个简单的二分查找代码示例:
```python
def binary_search(arr, target):
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
```
其中,arr 是需要进行查找的数组,target 是需要查找的目标值。如果找到了目标值,则返回其在数组中的下标,否则返回 -1。
希望这个代码示例能够帮到你!
相关问题
vector数组 二分查找
二分查找是一种常用的查找算法,可以在有序的数组中快速定位目标值。对于一个有序的数组,我们可以使用二分查找来找到目标值的位置。
具体的二分查找算法如下:
1. 确定搜索范围,首先将整个数组作为搜索范围。使用两个指针 `left` 和 `right` 分别指向搜索范围的起始位置和结束位置。
2. 计算中间位置 `mid`,`mid = (left + right) / 2`。
3. 比较中间位置的元素与目标值的大小。如果中间位置的元素等于目标值,则直接返回中间位置。
4. 如果中间位置的元素大于目标值,则说明目标值应该位于左半部分。更新搜索范围为左半部分,即 `right = mid - 1`。
5. 如果中间位置的元素小于目标值,则说明目标值应该位于右半部分。更新搜索范围为右半部分,即 `left = mid + 1`。
6. 重复步骤 2 到步骤 5,直到找到目标值或者搜索范围为空。
以下是使用二分查找在一个有序的整数数组中查找目标值的示例代码(C++语言):
```cpp
int binarySearch(vector<int>& nums, int target) {
int left = 0;
int right = nums.size() - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target) {
return mid; // 找到目标值,返回索引
} else if (nums[mid] < target) {
left = mid + 1; // 目标值在右半部分
} else {
right = mid - 1; // 目标值在左半部分
}
}
return -1; // 搜索范围为空,未找到目标值
}
```
请注意,以上代码假设输入的 `nums` 数组是有序的。如果数组无序,需要先进行排序再使用二分查找算法。
希望以上内容能够帮助到你!如有更多问题,请继续提问。
C++ 二分查找代码
当然!以下是一个示例的二分查找代码:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
```
以上代码使用了一个循环来进行二分查找。它接受一个已排序的数组 `arr` 和一个目标值 `target`。开始时,将 `low` 设置为数组的第一个元素的索引,将 `high` 设置为数组的最后一个元素的索引。
在每次循环中,它计算 `mid` 索引的值,并与目标值进行比较。如果相等,表示找到了目标值,返回 `mid` 索引。如果 `arr[mid]` 小于 `target`,则将 `low` 更新为 `mid+1`,否则将 `high` 更新为 `mid-1`。
如果循环结束时仍然没有找到目标值,则返回 -1 表示未找到。
请注意,此代码假设输入的数组已经按升序排序。如果数组没有排序,或者排序顺序不正确,那么此代码将无法正常工作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)