线性搜索算法

 算法时间复杂度:θ(n)

 

问题:在不同元素a1,a2,...,an的表中为元素定位,或判定x不在该表中。这一搜索问题的解是表中等于x的那一项的位置(即,若x=ai,那么i就是解),或当x不在表中时解为0。

线性搜索算法
从比较x和a1开始。若x=a1,那么解就是a1的位置,也就是1。
                 当x≠a1时,比较x和a2。
                 若x=a2,那么解就是a2的位置,也就是2。
                 当x≠a2时,比较x和a3。
继续这一过程,逐一比较x和表中的每一项,除非不出现相等,否则一旦发现相等,解就是该项的位置。

如果已搜索了整个表却不能为x定位,那么解是0。

#include <stdio.h>  

#define LEN 10  
int a[LEN] = { 12,98,43,34,66,3,89,3,6,90 };

int line_search(int x)
{
	int i = 0, location = 0;

	while (i<LEN && x != a[i])
		i = i + 1;//全部搜索完毕或找到x结束循环
	if (i<LEN)
		location = i + 1;
	else
		location = 0;
	printf("数%d在a[10]的%d位置\n", x, location);
	return 0;
}

int main(void)
{
	int x = 89;
	line_search(x);
	return 0;
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值