一、线性搜索算法原理
线性搜索算法(也称为线性查找)是在一组元素中按照顺序逐一查找特定元素的算法。它是一种最基础、最简单的查找方法,适用于任何类型的数据。具体实现过程是从数组的第一个元素开始,依次检查数组中的每个元素,直到找到目标元素或者查找整个数组都没有找到目标元素。其时间复杂度为 O(n)。
下面简单介绍一下线性查找的步骤:
- 初始化:将要查询的值存储在一个变量中;
- 从数组的第一个元素开始进行比较,如果查找到了目标元素,返回它所在的位置;
- 如果数组已经被查找完毕,还是没有找到目标元素,返回一个“未找到”的标识。
二、以下是使用 C 语言实现的线性搜索算法示例:
#include <stdio.h>
int linear_search(int arr[], int n, int target) {
// 遍历数组
for (int i = 0; i < n; i++) {
// 如果找到目标元素,返回它所在的下标
if (arr[i] == target) {
return i;
}
}
// 没有找到目标元素
return -1;
}
int main() {
int arr[] = { 5, 2, 7, 1, 8, 4 };
int n = sizeof(arr) / sizeof(arr[0]);
int target = 7;
int index = linear_search(arr, n, target);
// 输出查找结果
if (index != -1) {
printf("%d found at index %d\n", target, index);
} else {
printf("%d not found in the array\n", target);
}
return 0;
}
以上代码中,arr 是待查找的数组,n 是数组长度,target 是待查找的目标元素。linear_search 函数返回目标元素的下标,如果没有找到,则返回 -1。在 main 函数中,我们调用 linear_search 函数完成数组元素的查找,最后输出查找结果。
运行以上代码,输出结果为 7 found at index 2,即目标元素 7 在数组中的下标为 2。