C++程序 线性搜索
线性搜索是 C++ 程序中最基础的搜索算法之一,是指按照顺序逐个遍历要搜索的数据元素,从开始的元素一直找到结束的元素,直到找到为止,或者遍历结束。它适用于较小的数据集合或未排序的数据集合。
下面通过实例演示在 C++ 程序中如何使用线性搜索算法。
实例演示
以下代码实现的线性搜索算法,通过遍历数组 arr 中的元素,从头至尾进行搜索,返回目标值在数组中的下标,如果没找到则返回 -1。
int linearSearch(const int arr[], int n, int target)
{
for (int i = 0; i < n; i++)
{
if (arr[i] == target)
{
return i;
}
}
return -1;
}
其中,arr
表示要进行搜索的元素所组成的数组,n
表示数组的长度,target
表示要搜索的目标值。
以一个简单的整型数组为例:
int arr[] = {4, 7, 1, 9, 2, 6, 8, 5, 3};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 9;
我们可以使用上述线性搜索算法搜索目标值 9 的下标:
int index = linearSearch(arr, n, target);
if (index != -1)
{
std::cout << "目标值在数组中的下标为:" << index << std::endl;
}
else
{
std::cout << "目标值不在数组中" << std::endl;
}
输出结果为:
目标值在数组中的下标为:3
时间复杂度分析
线性搜索算法的时间复杂度为 O(n),其中 n 为要进行搜索的元素的数量。因此,当数据集合较大时,线性搜索算法的效率会较低,不适合用于大规模的数据搜索。
结论
线性搜索是 C++ 程序中最基础的搜索算法之一,适用于小规模或未排序的数据集合。但是,当数据集合较大时,效率会较低,不适合用于大规模的数据搜索。