从一个数组里找一个特定的值牛客
时间: 2024-02-19 20:03:14 浏览: 91
好的,这个问题可以使用线性搜索或二分搜索算法来解决。
1. 线性搜索算法:逐一遍历数组中的每个元素,直到找到目标值或遍历完整个数组。时间复杂度为O(n)。
示例代码:
```c++
int linearSearch(int arr[], int n, int target) {
for (int i = 0; i < n; i++) {
if (arr[i] == target) {
return i;
}
}
return -1; // 未找到目标值
}
```
2. 二分搜索算法:前提是数组必须是有序的,对于有序数组,可以使用二分搜索算法。每次将数组分为两个部分,确定目标值可能存在的一部分,然后逐一缩小搜索范围,直到找到目标值或搜索范围为空。时间复杂度为O(logn)。
示例代码:
```c++
int binarySearch(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; // 未找到目标值
}
```
希望这个回答能够帮助您解决问题。
阅读全文