数据结构核心代码 day20

本文深入探讨了数据结构中的查找技术,包括顺序查找和高效的折半查找算法。同时,对比了二叉查找树、平衡二叉树与红黑树的差异,强调了它们在实际应用中的重要性。红黑树作为最新考研大纲加入的内容,突显了理论与实践结合的趋势。此外,散列表作为另一关键数据结构,对于特定类型考试尤其重要。
摘要由CSDN通过智能技术生成

注:这一章很重要,具体的书上都有写
折半查找很重要。
二叉查找树,平衡二叉树,红黑树这三个树形查找的区别,看到树的重要性了吧
红黑树是22年加入新大纲的,考研越来越贴近实用了
散列表特别重要,特别是对于自命题的院校。

第七章 查找
7.1 顺序查找和折半查找
顺序查找
typedef struct{ //查找表的数据结构
ElemType *elem; //元素存储空间基址,建表时按实际长度分配,0号单元留空
int TableLen; //表的长度
}SSTable;
int Search_Seq(SSTable ST,ElemType key){
//在顺序表ST中顺序查找关键字为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) {
//在有序表L中查找关键字为key的元素,若存在则分会其位置,不存在返回-1
int low = 0, high = L.length - 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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值