线性查找

入门

最直接的查找方法,不依赖数组是否有序。

定义数组和目标值

可视化演示开发中

线性查找 的交互式动画即将上线,敬请期待。

// 源代码
1int linearSearch(int arr[], int n, int target) {
2    for (int i = 0; i < n; i++) {
3        if (arr[i] == target) {
4            return i;
5        }
6    }
7    return -1;
8}

复杂度分析

时间 O(n)
空间 O(1)
最优 O(1)
最坏 O(n)

算法讲解

线性查找按顺序检查每一个元素,直到找到目标值或到达数组末尾,是所有搜索算法里最直观的一种。

它完全不依赖数组是否有序,所以本页默认示例特意使用乱序数组,帮助你把注意力集中在"逐项比对"本身。

在动画里可以重点观察三件事:当前正在检查哪个索引、已经排除掉哪些元素、命中后流程如何立即结束。

如果目标值靠前,线性查找可能很快就结束;如果目标值不存在,就必须把整个数组完整扫一遍。

它常被用在数据量较小、输入无序,或只需要一次简单查找的场景里。

时间复杂度为 O(n),空间复杂度为 O(1),也是理解后续所有"更快查找"算法的起点。