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

本文介绍了数据结构中的顺序表查找定位算法,包括如何在顺序表中查找元素并返回下标或-1。接着讲解了二分查找的概念,指出其在递增有序顺序表中的高效性,并提供了非递归和递归两种实现方式。最后讨论了单链表的创建和判空操作,包括创建带有头结点的空链表及判断链表是否为空的方法。
摘要由CSDN通过智能技术生成

顺序表得查找定位

算法:顺序表的查找算法

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=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值