查找操作------顺序查找

之前讨论了表结构链表与表——随心所欲地进出任何队列.制表的目的就是为了以后的查看或者查找方便,如果制表后又不在表上进行查找,那么制表就变得毫无意义了.

"查找"就是在一组数据项里面查找一个特定的元素.所以查找有时也称为搜索.但实际上搜索和查找也不是完全一样.查找要做的是在一个序列或集合里面查看是否存在某个特定的元素.这和一般的搜索并不完全相同,因为搜索并不一定要事先知道要搜索什么.事实上,查找是搜索的一个特例.

查找的结果只能有两种:成功和失败.

下面就给出最简单的查找方法---------顺序查找:

int list::sequentialSeaech(const int &target,int &position)//顺序查找
{
	for(int i(0);i<count;++i)	//从头开始,一个一个的查找
	{
		if(data[i] == target)	//如果有与target相同的值,则返回position
		{
			position = i;
			return success;
		}
	}
	return overflow;			//否则,报错
}

上述查找方法的成本最坏情况为表的长度;最好当然是1,即常数;平均来讲则需要比较一半的元素.如果表的元素个数为n,则平均成本为n/2,即O(n).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值