简单算法----线性查找

一. 线性查找算法

线性查找算法是指当一个集合的数据杂乱无章的存放时,从第一个元素开始,将每个集合元素键值与待查找的元素的键值(能根据其对集合的数据进行排序)进行比较,直到找到或集合元素都已比较为止。若待查找的元素在集合中存在,则停止查找;若待查找的元素根本就不存在于集合中,则集合中所有元素比较完之后,停止查找。

线性查找算法实现过程中数据结构的选取根据实际情况有所不同。集合中的数据可以存放于数组中,也可以存放于链表中,甚至其它的数据结构中。当算法思想是不变的,就是从第一个元素开始,逐一比较;因此,最差情况下,需要将所有元素比较一遍;尤其当集合中的数据量很大时,算法的运行时间就会明显降低,其与集合的数据量正相关。

本次线性查找算法实现时,数据结构为数组。具体实现(C语言代码)如下:

---------------------------------------------------------------------------------------------------

// 问题: 键x是否存在于拥有n个键的数组S中?

// 输入: 1.正整数n; 2.数组S(其索引范围为0至n-1); 3.待查找的键x

// 输出: location(x在数组S中的位置,若x不在S中,则为0)

int linear_search(int n, double S[], double x)

{

int i = 0;

for( i = 0; i < n; ++i)

{

if( x == S[i])

{

return i+1;

}

}

return 0;

}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值