//顺序查找,折半查找
typedef structa{//查找表的数据结构
int *elem;//元素存储空间基址,建表时按实际长度分配,0号单元留空
int TableLen;
}SSTable;
int Search_Seq(SSTable ST,int key){
ST.elem[0]=key;//哨兵
for(i=ST.TableLen;ST.elem[i]!=key;--i);//从后往前找
return i;//若表中不存在值为key的元素,将查找到i为0时退出for循环
}
/*折半查找*/
int Binary_Search(SeqList L,ElemType key){
int low=0,high=L.TableLen-1,mid;
while(low<=high){
mid=(low+high)/2;
if(L.elem[mid]==key)
return mid;
else if(L.elem[mid]>key)
high=mid-1;
else if(L.elem[mid]<key)
low=mid+1;
}
return -1;
}
顺序查找,折半查找
最新推荐文章于 2024-11-12 12:29:51 发布