C++ 中的线性搜索 (Linear Search) 算法- 解释、示例和代码

线性搜索算法是一种用于查找列表中特定元素的简单方法。 该算法的工作原理是顺序检查列表中的每个元素,直到找到所需的元素或遍历整个列表。

怎么运行的

  1. 从列表中的第一个元素开始。
  2. 将当前元素与目标值进行比较。
  3. 如果当前元素等于目标值,则算法终止并返回元素的位置。
  4. 如果没有,则继续迭代列表中的剩余元素。
  5. 如果遍历整个列表没有找到目标元素,则算法返回一个表示未找到的值。

例子

假设我们有一个整数列表,我们想要在列表中找到数字 34。

列表:{12, 45, 67, 89, 34, 56, 23, 90}

  1. 从第一个元素开始:12。不是所需的数字。
  2. 移至下一个元素:45。不是所需的数字。
  3. 继续处理剩余元素:67、89、34。元素 34 与所需的数字匹配。
  4. 算法终止并返回 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。