数据结构知识复习(三)

本文详细介绍了数据结构中的查找技术,包括静态查找表的顺序查找、折半查找和分块查找,以及动态查找表的二叉排序树、平衡二叉树(AVL树)、B_树和哈希表。讲解了各类查找方法的原理、优势和应用场景,同时提到了排序的稳定性与内外部排序方法。
摘要由CSDN通过智能技术生成

(五)查找

查找是常用的基本运算。查找表是指由同一类型的数据元素(或记录)构成的集合。对查找表经常进行的两种操作:(1)查询某个特定的数据元素是否在查找表中。(2)检索某个特定的数据元素的各种属性。只进行这两种 操作的查找表 称为静态查找表。 对查找表要进行的另外两种操作如下:(1)在查找表中插入一个数据元素。(2)在查找表中删除一个数据元素。 进行这两种操作的查找表为动态查找表

为确定记录在查找表中的 位置,需和给定关键字值进行比较的次数的期望值称为查找算法在查找成功时的平均查找长度。对于含有n个记录的表,查找成功时的平均查找长度定义为:其中,pi为对表中第i个记录进行查找的概率,且,一般认为pi = 1/n,Ci为找到表中其关键字与给定值相等的记录时,和给定值已进行过比较的关键字个数,Ci随查找方法的不同而不同。

       1、静态查找表的查找方法

(1)顺序查找

    从表的一端,逐个将记录的关键字和给定值比较,找到则查找成功,若将整个表中的记录均比较过, 仍未能找到关键字等于给定值的记录,则查找失败。

    顺序查找对顺序存储方式和链式存储方式的查找表都适用。

(2) 折半查找

    设查找表的元素存储在一维数组r[1, ……, n]中, 表中元素已经按照 关键字递增方式排序的情况下,折半查找的而方法是:首先将待查元素的关键字(Key)值与表r中间位置上(下标为mid)记录的关键字进行比较,若相等,则查找成功,若key > r[mid].key,则说明待查记录只肯在后半个子表r[mid + 1, ……, n]中, 下一步应在后半个子表中查找,若key <  r[mid].key,则说明待查记录只肯在前半个子表r[1, ……, mid - 1]中, 下一步应在前半个子表中查找, 这样逐步缩小范围,直到查找 成功或子表为空 时失败为止。

    折半查找的 过程可以用一棵二叉树描述,方法是当前查找区间的中间位置序号作为根,左半个子表和右半个子表中的记录序号分别作为根的左子树和右子树上的结点,这样构造的二叉树称为折半查找判定树

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值