一、算法思想
顺序查找,也叫“线性查找”,通常用于线性表(顺序表和链式)。
算法思想:从头到尾挨个查找。
二、算法实现
通过for循环,从数组开头依次向后查找,同时要注意循环不能越界,查找成功,返回下标元素。查找失败则返回-1.
哨兵模式:
就是将数组第一个位置空出来放入要查找的元素。这时候数组长度和数组下标对应,再利用循环从最后一个数组元素进行查找对比,与第一个元素相同则查找成功。若查找失败则返回0 ,也就是该元素自己的数组下标。
优点:在循环中只需要判断一次被查找元素是否相同,无需判断越界,效率更高。
查找效率分析: ASL成功 = (n+1)/2 ASL失败 = n+1。
时间复杂度为: O(n)
三、算法优化
1.当查找表中元素有序排放时(递增/递减),查找时只需要多查找一次就可以判断出该元素存不存在。 ASL失败 = n/2 + n/ (n+1).
注意:查找失败的情况!=最多查找这么多次。
2.当每个元素被查找的概率不相等时,可以将被查找概率大的放在靠前的位置。
总结: