线性搜索算法是一种用于查找列表中特定元素的简单方法。 该算法的工作原理是顺序检查列表中的每个元素,直到找到所需的元素或遍历整个列表。
怎么运行的
- 从列表中的第一个元素开始。
- 将当前元素与目标值进行比较。
- 如果当前元素等于目标值,则算法终止并返回元素的位置。
- 如果没有,则继续迭代列表中的剩余元素。
- 如果遍历整个列表没有找到目标元素,则算法返回一个表示未找到的值。
例子
假设我们有一个整数列表,我们想要在列表中找到数字 34。
列表:{12, 45, 67, 89, 34, 56, 23, 90}
- 从第一个元素开始:12。不是所需的数字。
- 移至下一个元素:45。不是所需的数字。
- 继续处理剩余元素:67、89、34。元素 34 与所需的数字匹配。
- 算法终止并返回 34 的位置,即 4。
C++ 示例代码
#include <iostream>
#include <vector>
int linearSearch(const std::vector<int>& arr, int target) {
for(int i = 0; i < arr.size(); ++i) {
if(arr[i] == target) {
return i;
}
}
return -1;
}
int main() {
std::vector<int> numbers = {12, 45, 67, 89, 34, 56, 23, 90};
int target = 34;
int result = linearSearch(numbers, target);
if(result != -1) {
std::cout << "Element " << target << " found at position " << result << std::endl;
} else {
std::cout << "Element " << target << " not found in the array" << std::endl;
}
return 0;
}
在给定的示例中,我们使用该 linearSearch
函数在整数列表中查找数字 34。 结果将是列表中 34 的位置(位置从 0 开始),如果未找到该数字,则结果为 -1。