顺序查找
顺序查找(Sequential Search)又叫做线性查找,是基本的查找技术
线性查找的思想
- 从表开始的第一个或最后一个开始,逐个进行记录的关键字和给与的定值进行比较
- 若相同,则查找成功
- 若遍历全表全部不同则查找失败
算法实现
1 | /*a为数组,n为查找的数组长度,key为查找的关键字*/ |
算法优化
每次循环都会去处理i是否越界,可以使用“驻点”免去i的判断具体代码如下:
1 | int Sequential_Search2(int *a,int n,int key){ |
放置驻点可以在数据量多时免去i的判断提升效率。
算法分析
- 顺序查找算法有非常大的缺点,查找的效率低下,但是当对于小数据查找时也非常适用
- 顺序查找最好的时间复杂度即是1,第一个位置就找到
- 最坏的查找时间复杂度是最后一个位置,为O(n)