前言
从数组中查找你需要的数据,是一个很常见的需求,那么当你查找所需数据时,用什么方法查找速度最快?
本文将通过图文形式,详细讲解线性查找与二分查找,并用JavaScript将其实现,欢迎各位感兴趣的前端开发者阅读本文。
线性查找
概念
线性查找是一种在数组中查找数据的算法,从数组的头部开始按顺序往下查找即为线性查找。
图解示例
如图所示,我们查找数字6在数组中的位置
从数组的最左边开始查找,将其与6进行比较,如果结果一致,查找便结束,不一致则向右检查下一个数字。
此处不一致,所以向右继续和下一个数字进行比较。
重复上述操作直到找到数字6为止
找到6了,查找结束
线性查找需要从头开始不断地按顺序检查数据,因此在数据量大且目标数据靠后,或者目标数据不存在时,比较的次数就会更多,也更为好使。若数据量为n,线性查找的时间复杂便为O(n)。
用JS实现线性查找
正如图解示例所述,我们想要查找某个值在数组中的位置,需要遍历这个数组,判断当前遍历到的值是否与目标值相等。
声明一个函数,参数为