📅  最后修改于: 2023-12-03 15:27:33.105000             🧑  作者: Mango
线性搜寻是一种最基本的搜索算法,也称为顺序搜索或扫描搜索。它的思想是逐一检查每个元素是否与目标值相同,直到找到目标值或搜索完数组。它适用于小规模数据和无序数据,但对于大规模数据和有序数据效率不高。
以下是 Python 语言的线性搜寻实现。
def linear_search(arr, target):
"""
在数组 arr 中线性搜寻目标值 target。
如果找到则返回其所在的位置,否则返回 -1。
"""
for i in range(len(arr)):
if arr[i] == target:
return i
return -1
以下是 C++ 语言的线性搜寻实现。
#include <iostream>
#include <vector>
int linear_search(std::vector<int> arr, int target) {
/*
在数组 arr 中线性搜寻目标值 target。
如果找到则返回其所在的位置,否则返回 -1。
*/
for (int i = 0; i < arr.size(); i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
int main() {
std::vector<int> arr = {1, 3, 2, 5, 4};
int target = 3;
int idx = linear_search(arr, target);
if (idx == -1) {
std::cout << "没有找到目标值" << std::endl;
} else {
std::cout << "目标值的位置是:" << idx << std::endl;
}
return 0;
}
线性搜寻是一种最简单、最基本的搜索算法,但效率不高,仅适用于小规模数据和无序数据。在实际应用中,更常用的是二分搜寻等高效算法。