数据结构问答8

本文详细介绍了数据结构中的查找技术,包括基本概念、顺序查找、折半查找、分块查找、二叉排序树、AVL树、红黑树、B树和B+树,以及哈希查找。通过平均查找长度ASL来评估查找算法,讨论了各种查找方法的优缺点,例如折半查找效率高但需有序,B+树适合数据库索引等。
摘要由CSDN通过智能技术生成

查找

1. 一些基本概念

关键字:能唯一标识该元素

查找:给定值k,在含n个元素的表中找出关键字==k的元素。找到返回其位置信息,否则返回-1。

动、静态查找表:查找同时对表进行修改(插入、删除等),相应的表为动态,否则为静态。

内、外查找:整个查找过程在内存中进行,称之为内查找;需要访问外存,则为外查找。

平均查找长度ASL:∑pici,pi:查找第i个元素的概率,一般为1/n,ci:找到第i个元素所需进行的关键字的比较次数。

2. 怎样评价一个查找算法?

答:通过平均查找长度ASL。其数量级反应了查找算法的时间复杂度。

顺序表的查找

3. 顺序查找

答:

基本思想:从表的一端开始顺序扫描顺序表,依次扫描到的元素关键字与k比较,若找到,查找成功;若扫描结束也未找到,则失败。

时间复杂度:O(n)

优点:算法简单,且对表的结构无任何要求。

缺点:查找效率低

4. 折半查找

答:要求线性表是有序表。不适合链式存储结构的数据查找。

基本思想:在[low, high]之间查找目标关键字,每次检查mid=(low+high)/2,根据mid所指元素与目标关键字的大小调整low和high,不断缩小low和high的范围,当low>high时则查找失败。

判定树(或判定表)构造及特性:

构造:由mid所指元素将原有元素分割到左右子树中。

特性:① 折半查找的判定树是是平衡的二叉排序树(左<中<右)

           ② 只有最下面一层试不满的

           ③ 若查找表有n个关键字,则失败结点有n+1个

           ④ 树高h=log2(n+1)上取整,不包含失败结点

时间复杂度:O(log2n)

优点:查找效率高

缺点࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值