7.1 基本概念
查找:在数据集合中寻找满足某种条件的数据元素的过程
查找表(查找结构):用于查找的数据集合称为查找表,它由同一类型的数据元素(或记录)组成
关键字:数据元素中唯一标识该元素的某个数据项的值,使用基于关键字的查找,查找结果应该是唯一的
查找表常见操作:
①查找符合条件的数据元素②插入删除某个数据元素
只需进行操作①——静态查找表
也要进行操作②——动态查找表
查找长度:在查找运算中,需要对比关键字的次数
平均查找长度(ASL):所有查找过程中进行关键字的比较次数的平均值
7.2 顺序查找
typedef struct{//查找表数据结构
ElemType *elem;//动态数组基址
int TableLen;//表的长度
}SSTable;
//一般顺序查找
int Search_Seq(SSTable ST,ElemType key){
int i;
for(i=0;i<ST.TableLen&&ST.elem[i]!=key;++i);//查找成功返回数组下标,失败返回-1
return i==ST.TableLen?-1:i;
}
//哨兵顺序查找
int Search_Seq(SSTable ST,ElemType key){
ST.elem[0]=key;//哨兵
int i;
for(i=ST.TableLen;ST.elem[i]!=key;--i);//从后往前找
return i;//成功返回下标,失败返回0
}
查找效率分析:




7.3 折半查找
//折半查找
int Binary_Search(SSTable 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
low=mid+1;//从后半部分继续查找
}
return -1;//查找失败返回-1
}
小结:

7.4 分块查找

7.5 B树和B+树
略
7.6 散列查找

本文介绍了数据结构中的查找技术,包括顺序查找、折半查找的基本概念和实现。顺序查找通过遍历查找表来定位元素,而折半查找利用二分法提高查找效率。此外,还涉及查找表的查找长度和平均查找长度(ASL)等关键指标。通过对不同查找方法的分析,有助于理解数据结构在查找操作中的性能差异。
816

被折叠的 条评论
为什么被折叠?



