高手呀~~能不能写一个程序代码,用C语言实现 索引顺序查找算法。
2个回答
展开全部
int IdxSearch(IDX I,int m,SeqList R,int n,KeyType k)
{
int low=0,high=m-1,mid,i;
int b=n/m; /*b为每块的记录个数*/
while (low<=high) /*在索引表中进行二分查找,找到的位置存放在low中*/
{
mid=(low+high)/2;
if (I[mid].key>=k)
high=mid-1;
else
low=mid+1;
}
if (low<m) /*在索引表中查找成功后,再在线性表中进行顺序查找*/
{
i=I[low].link;
while (i<=I[low].link+b-1 && R[i].key!=k) i++;
if (i<=I[low].link+b-1)
return i;
else
return -1;
}
return -1;
}
索引表用二分法查找,线性表中是顺序查找,如果都用二分法或者顺序查找,自己改改就好,自己动手了、、、哈哈
{
int low=0,high=m-1,mid,i;
int b=n/m; /*b为每块的记录个数*/
while (low<=high) /*在索引表中进行二分查找,找到的位置存放在low中*/
{
mid=(low+high)/2;
if (I[mid].key>=k)
high=mid-1;
else
low=mid+1;
}
if (low<m) /*在索引表中查找成功后,再在线性表中进行顺序查找*/
{
i=I[low].link;
while (i<=I[low].link+b-1 && R[i].key!=k) i++;
if (i<=I[low].link+b-1)
return i;
else
return -1;
}
return -1;
}
索引表用二分法查找,线性表中是顺序查找,如果都用二分法或者顺序查找,自己改改就好,自己动手了、、、哈哈
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询