用c++做一个查找函数
时间: 2023-12-10 16:40:53 浏览: 24
好的,我可以帮你写一个简单的查找函数,以下是示例代码:
```c++
#include <iostream>
using namespace std;
// 线性查找函数
int linearSearch(int arr[], int n, int key) {
for (int i = 0; i < n; i++) {
if (arr[i] == key) {
return i; // 返回找到的索引
}
}
return -1; // 表示没找到
}
int main() {
int arr[] = {3, 5, 2, 1, 4};
int n = sizeof(arr) / sizeof(arr[0]);
int key = 2;
int index = linearSearch(arr, n, key);
if (index != -1) {
cout << "找到了,索引为:" << index << endl;
} else {
cout << "没找到!" << endl;
}
return 0;
}
```
这里用到的是线性查找算法,时间复杂度为 O(n),也就是需要遍历整个数组才能找到目标元素。如果需要更快的查找速度,可以使用二分查找或哈希表等更高效的算法。
相关问题
c++编写一个字符查找函数
好的,我可以帮您解答c编写一个字符查找函数。一般来说,我们可以使用标准库函数strchr来实现字符查找。该函数的定义如下:
```c
char *strchr(const char *s, int c);
```
其中参数s为被查找的字符串,参数c为要查找的字符。该函数返回参数c在参数s中首次出现的位置的指针,如果参数c在参数s中未出现,则返回NULL。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, world!";
char ch = 'o';
char *p = strchr(str, ch);
if (p != NULL) {
printf("'%c' found at position %ld\n", ch, p - str);
} else {
printf("'%c' not found\n", ch);
}
return 0;
}
```
该代码会在字符串"Hello, world!"中查找字符'o',并输出该字符在字符串中的位置。输出结果为:
```c
'o' found at position 4
```
希望这能帮到您。
C++编写一个二分查找函数
以下是C++编写的二分查找函数示例:
```c++
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;
} else if (arr[mid] < target) { // 如果中间值小于目标值,缩小搜索范围到右半部分
left = mid + 1;
} else { // 如果中间值大于目标值,缩小搜索范围到左半部分
right = mid - 1;
}
}
return -1; // 如果未找到目标值,返回-1
}
```
该函数的参数说明:
- `arr[]`:表示需要进行查找的有序数组。
- `left`:表示需要查找的数组的起始下标。
- `right`:表示需要查找的数组的结束下标。
- `target`:表示需要查找的目标值。
函数使用while循环实现二分查找,每次计算中间位置,然后根据中间位置与目标值比较,缩小搜索范围。如果找到目标值,直接返回该元素的下标,否则最后返回-1表示未找到。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)