活动地址:CSDN21天学习挑战赛
本科生在读,软件工程专业,对所学简单算法做一些总结。如果有总结不到位或者错误之处还请大家指正。最后希望对大家学习了解顺序查找有所帮助。
一、顺序查找介绍
顺序查找法又称线性查找法,它的方法是将数据一项一项的和要查找的数据按顺序进行比较,优点是元素查找前不需要进行任何处理,缺点就是查找速度过慢。最好的情况是一次就查到数据;最差则需要进行n次比较(共有n个元素)
二、顺序查找流程
关键字key=8;如果下标i对应的元素和关键字相同,则找到该元素;
如果遍历到所有元素仍未找到和key相同的元素,则不存在该元素。
三、顺序查找实例
输入 :
数组: a[9]={12,6,0,9,8,24,36,18,41};
关键字 :key的值为8;
输出:
5
代码:
说明:i为数组元素的下标(物理序号)若输出其逻辑序号则需+1。
四、时间复杂度分析
最好情况:一次比较就找到所要查找的元素,时间复杂度为O(1);
最差情况:比较n次(共有n个元素),时间复杂度为O(n);
平均情况:综合两种情况,顺序查找的时间复杂度为O(n),属于较慢的算法。
五、空间复杂度分析
由于算法不会改变原有的元素集合,只需要一个额外的变量控制索引变化,所以空间复杂度为O(1)。