#数据结构与算法分析(期末总复习2)

顺序表得查找定位

算法:顺序表的查找算法

int LOcateIndex_seq(SeqList slist,int x)//查找值为x得元素,返回元素所在的下标
{
   
	int q;
	for(q=0;q<slist->n;q++)
	{
   
		if(slist->elem[q]==x)//查询成功,返回对应的下标
		return q;
	}
	return -1;//查询失败,返回-1
}

在顺序表中查找值为x得元素是否存在,如果存在,返回该元素在顺序表中的下标,如果不存在返回-1,在该操作中需要将顺序表中的元素从头开始依次和要查找的x进行比较,如果相等,返回该元素得下标,否则继续先后进行比较,直到比较到最后一个元素为止,此时说明不存在要查找的元素,返回-1。
————————我是分割线————————————

二分查找

对于递增有序顺序表,查找过程可以采用二分查找,也称之为折半查找,这是相对于顺序查找时间效率较高得查找算法,查找过程首先将要查找得元素和有序表中得中间元素比较,如果相等,这查找成功;如果大于中间元素,则在后半区继续查找;如果小于中间元素,则在前半区间查找,不断重复上述过程,直到查找成功或者查找失败为止。
查找过程也是一个递归得过程。

算法:二分查找的非递归实现

int Binsearch(SeqList slist,int key,int *pos)
{
   	
	int index=
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值