二分查找C++控制台
时间: 2023-09-20 10:13:22 浏览: 43
你好!以下是一个使用二分查找算法在C语言中实现的例子。该程序通过从给定数组中查找特定元素,并返回其索引位置。
```c
#include <stdio.h>
int binarySearch(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2;
// 如果目标值等于中间元素,则返回索引
if (arr[mid == target) {
return mid;
}
// 如果目标值小于中间元素,则在左半部分继续查找
if (arr[mid > target) {
right = mid - 1;
}
// 如果目标值大于中间元素,则在右半部分继续查找
else {
left = mid + 1;
}
}
// 如果未找到目标值,则返回-1
return -1;
}
int main() {
int arr[] = {2, 4, 6, 8, 10, 12, 14, 16};
int n = sizeof(arr) / sizeof(arr
相关问题
二分查找c++
二分查找(Binary Search)是一种在有序数组中查找某一特定元素的搜索算法。C++中实现二分查找的代码如下:
```c++
int binarySearch(int arr[], int low, int high, int key)
{
while (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] == key)
return mid;
else if (arr[mid] < key)
low = mid + 1;
else
high = mid - 1;
}
return -1; // 如果没找到,返回 -1
}
```
其中,`arr[]`是有序数组,`low`和`high`是数组的起始和结束下标,`key`是要查找的元素。函数返回值为元素在数组中的下标,如果没找到则返回 `-1`。
二分查找 c++14
二分查找(Binary Search)是一种在有序数组中查找特定元素的常用算法。它的基本思想是将待查找区间不断地二分,直到找到目标元素或者确定目标元素不在数组中。
以下是一个使用C语言实现的二分查找算法示例:
```c
#include <stdio.h>
int binarySearch(int arr[], int low, int high, int target) {
while (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] == target) {
return mid;
}
else if (arr[mid] < target) {
low = mid + 1;
}
else {
high = mid - 1;
}
}
return -1; // 目标元素不存在
}
int main() {
int arr[] = {2, 4, 6, 8, 10, 12, 14};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 14;
int index = binarySearch(arr, 0, n - 1, target);
if (index != -1) {
printf("目标元素 %d 在数组中的索引位置为 %d\n", target, index);
}
else {
printf("目标元素 %d 不存在于数组中\n", target);
}
return 0;
}
```
在上述代码中,`binarySearch` 函数接收一个有序整数数组 `arr`、待查找区间的起始索引 `low`、待查找区间的结束索引 `high`、目标元素 `target`。它通过不断缩小待查找区间的范围,最终返回目标元素在数组中的索引位置,如果目标元素不存在,则返回 -1。
以上是二分查找算法的简单示例,希望能帮到你!如果还有其他问题,请继续提问。