线性搜索,也叫顺序搜索或简单搜索,是最基本的搜索算法。给定一个数据结构,例如一个数组,我们通过查看所有的元素来搜索一个项目,直到我们找到它。
它的实现是非常简单的。
const linearSearch = (list, item) => {
for (const [i, element] of list.entries()) {
if (element === item) {
return i
}
}
}
这将返回我们要找的项目的索引。例子。
linearSearch(['a', 'b', 'c', 'd'], 'd') //3 (index start at 0)
如果我们寻找'a',该算法将只看第一个元素并返回,所以它非常快。
但是如果我们寻找最后一个元素,算法就需要在所有的数组中循环。为了计算大O值,我们总是着眼于最坏的情况。
所以算法的复杂度是O(n) 。