顺序表得查找定位
算法:顺序表的查找算法
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=