查找 · 单步演示
顺序查找
从第一个数开始逐个比较,遇到要找的数就返回它的位置;全部看完都没有就返回 −1。不要求数组有序。
420
71
192
633
84
255
516
307
步 001 / 007从左到右逐个看,找 25。数组不需要有序。
键盘:← → 单步,空格 播放/暂停(先点一下演示区)。
伪代码 · 当前行高亮
for i ← 0 … n−1if a[i] = target:return ireturn −1
变量
| target | 25 |
|---|---|
| 比较次数 | 0 |
复杂度
| 最好情况 | O(1) |
|---|---|
| 平均情况 | O(n) |
| 最坏情况 | O(n) |
| 额外空间 | O(1) |
要找的数在第一个位置时只比较 1 次;不在数组里时要比较 n 次。
要点
- 唯一不需要预处理的查找方法,适合数据少或只查一两次。
- 有重复值时返回的是第一次出现的位置。
常见错误
在有序数组上反复查找还用顺序查找,就浪费了「有序」这个条件,改用二分。