欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 数据结构:线性表查找的三种方式

数据结构:线性表查找的三种方式

2025/2/5 19:29:58 来源:https://blog.csdn.net/2201_75903640/article/details/145399018  浏览:    关键词:数据结构:线性表查找的三种方式

只要是静态查找表即可

#define ElemType int
typedef struct {
ElemType *d;
int length;
}SSTable;

顺序查找 S(n)=O(1) 哨兵空间

int Search_Seq(SSTable t,ElemType key)
{t.d[0]=key;for (int i = t.length; i >0 ; i--) {if(t.d[i]==t.d[0]){return i;}}return 0;
}

折半查找(二分查找):要求必须是顺序存储,且元素内有序

非递归

int Search_bin_notDG(SSTable t,ElemType key)
{int low=1,high=t.length-1;while (low<=high){int mid=(high+low)/2;if(t.d[mid]==key){return mid;}else if(t.d[mid]>key){high=mid-1;} else{low=mid+1;}}return 0;
}

递归

int Search_bin_DG(SSTable t,ElemType key,int high,int low)
{if(low>high){return 0;}int mid=(low+high)/2;if(t.d[mid]==key){return mid;}else if(t.d[mid]<key){Search_bin_DG(t,key,high,mid+1);}else{Search_bin_DG(t,key,mid-1,low);}}

分块查找:主要是利用索引表进行查找,块间有序,块内有无序决定块内查找方式

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com