代码与动画 LINEAR SEARCH
顺序查找.
从左到右逐项比较,找到目标后返回下标。
时间 O(n)空间 O(1)无需预排序
原理与执行逻辑
按照数组顺序逐项比较目标值,遇到相等元素就返回下标。每次检查只排除当前一个元素,因此不要求数组预先有序。
执行步骤
- 从下标 0 开始。
- 比较当前元素与目标值,相等就立即返回当前下标。
- 不相等时移动到下一个元素。
- 全部元素检查完仍未命中时返回 -1。
关键理解
扫描到下标 i 时,之前的元素都已确认不匹配。立即返回使重复目标值命中第一次出现的位置。
简短示例
在 [8, 3, 5, 3] 中查找 3,先排除 8,再在下标 1 命中,后面的元素无需检查。
代码与执行动画
STEP 0 / 5function linearSearch(arr, target) { for (let i = 0; i < arr.length; i++) { if (arr[i] === target) return i; } return -1;}目标 42区间 [0, 7]
当前数据正在操作已访问 / 命中标记 / 指针
0
准备查找
从数组第一个元素开始查找。
查找数据
按输入顺序查找,支持重复值。
顺序查找的操作规则
返回首次命中的下标;扫描到末尾仍未命中时返回 -1。
对应题目与扩展练习
观察执行过程后,按题目约束调整输入、返回值与实现。链接打开官方题目页面。
- 对应题目27. 移除元素打开题目
线性扫描应用;扫描命中值后,还需原地压缩保留元素。