查找
线性查找与二分查找,以及二分思想的常见变形。代码继续用 JavaScript。
1. 线性查找
从左到右逐个比对,找到就返回下标,否则返回未找到。
- 时间:最好 O(1),平均/最坏 O(n)
- 空间:O(1)
- 前提:无(无需有序)
function linearSearch(arr, target) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) return i
}
return -1
}
无序数组、链表上的「找一个元素」基本就是这一档。数据已有序时,应优先考虑二分。