线性查找
入门最直接的查找方法,不依赖数组是否有序。
// 搜索输入
定义数组和目标值
可视化演示开发中
线性查找 的交互式动画即将上线,敬请期待。
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),也是理解后续所有"更快查找"算法的起点。