查找整数 题目描述:要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始 数);如果没有找到,输出“NotFound”。
时间: 2024-10-15 10:24:00 浏览: 100
查找整数的问题通常涉及在一个已排序的整数列表(如数组)中搜索目标值X。这个过程可以采用线性搜索、二分搜索等算法。下面是基本步骤:
1. **线性搜索**(顺序查找):逐个遍历数组,每当遇到一个元素等于X时,返回其索引。这种方法的时间复杂度是O(N),因为最坏情况下需要检查所有元素。
2. **二分搜索**(对于有序数组):这是一种更高效的搜索策略。首先将列表分为两半,比较中间元素与X的大小关系,然后根据比较结果缩小搜索范围。时间复杂度为O(log N)。
如果你提供的是C++代码示例,可能会这样写:
```cpp
int binarySearch(int arr[], int left, int right, int x) {
if (right >= left) {
int mid = left + (right - left) / 2;
// 如果中间元素就是我们要找的
if (arr[mid] == x)
return mid;
// 如果中间元素大于x,则在左半部分继续搜索
else if (arr[mid] > x)
return binarySearch(arr, left, mid - 1, x);
// 否则,在右半部分搜索
else
return binarySearch(arr, mid + 1, right, x);
}
// 如果未找到,返回"NotFound"
return -1;
}
// 使用函数
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 5;
int result = binarySearch(arr, 0, n - 1, x);
if (result != -1)
cout << "Element found at index " << result << endl;
else
cout << "Element not found" << endl;
return 0;
}
```
阅读全文