26考研——查找(7)

408答疑


文章目录

  • 一、查找的基本概念
  • 二、顺序查找、折半查找和分块查找
  • 三、树形查找
  • 四、B 树和 B+ 树
  • 五、散列(Hash)表
  • 六、参考资料
    • 鲍鱼科技课件
    • 26王道考研书
  • 七、总结
    • 查找算法与数据结构的关系
    • 平均查找长度的计算公式
      • 查找成功计算公式
      • 查找失败计算公式
    • 查找概率与数据比较次数


一、查找的基本概念

  • 文章链接: 点击跳转

二、顺序查找、折半查找和分块查找

  • 文章链接: 点击跳转

三、树形查找

  • 文章链接: 点击跳转

四、B 树和 B+ 树

  • 文章链接: 点击跳转

五、散列(Hash)表

  • 文章链接: 点击跳转

六、参考资料

鲍鱼科技课件

b站免费王道课后题讲解:
在这里插入图片描述

网课全程班:
在这里插入图片描述

26王道考研书


七、总结

  • 本章的核心考点是求平均查找长度 (ASL),以度量各种查找算法的性能。

查找算法与数据结构的关系

  • 查找算法本身依托于查找结构,查找结构又是由相同数据类型的记录或结点构成的,所以最终落脚于数据结构类型的区别。

平均查找长度的计算公式

查找成功计算公式

A S L 成功 = ∑ i = 1 n p i c i ASL_{\text{成功}} = \sum_{i=1}^{n} p_i c_i ASL成功=i=1npici

  • p i p_i pi:第 i i i个元素的查找概率
  • c i c_i ci:查找到第 i i i个元素所需的比较次数
  • n n n:数据集合元素总数

查找失败计算公式

A S L 不成功 = ∑ j = 0 n q j c j ASL_{\text{不成功}} = \sum_{j=0}^{n} q_j c_j ASL不成功=j=0nqjcj

  • q j q_j qj:第 j j j个子集合的查找概率
  • c j c_j cj:在子集合 j j j中确认查找失败所需的比较次数
  • 子集合数量: n + 1 n+1 n+1(由 n n n个元素间隔构成)

查找概率与数据比较次数

  • 设一个查找集合中已有 n n n 个数据元素,每个元素的查找概率为 p i p_i pi,查找成功的数据比较次数为 c i c_i ci ( i = 1 , 2 , … , n i=1,2,\ldots,n i=1,2,,n);
  • 不在此集合中的数据元素分布在由这 n n n 个元素的间隔构成的 n + 1 n+1 n+1 个子集合内,每个子集合元素的查找概率为 q j q_j qj,查找不成功的数据比较次数为 c j c_j cj ( j = 0 , 1 , … , n j=0,1,\ldots,n j=0,1,,n)。
  • 对某一特定查找算法的查找成功的 ASL 成功和查找失败的 ASL 不成功,是综合考虑还是分开考虑呢?
    • 若综合考虑,即 ∑ i = 1 n p i + ∑ j = 0 n q j = 1 \sum_{i=1}^{n} p_i + \sum_{j=0}^{n} q_j = 1 i=1npi+j=0nqj=1,若所有元素查找概率相等,则有 p i = q j = 1 2 n + 1 p_i = q_j = \frac{1}{2n+1} pi=qj=2n+11
    • 若分开考虑,即 ∑ i = 1 n p i = 1 \sum_{i=1}^{n} p_i = 1 i=1npi=1 ∑ j = 0 n q j = 1 \sum_{j=0}^{n} q_j = 1 j=0nqj=1,若所有元素查找概率相等,则有 p i = 1 n p_i = \frac{1}{n} pi=n1 q j = 1 n + 1 q_j = \frac{1}{n+1} qj=n+11
  • 虽然综合考虑更为理想,但在实际应用中多数是分开考虑的,因为对于查找不成功的情况,很多场合下没有明确给出,往往会被忽略掉。不过需要注意的是,这两种考虑的计算结果是不同的,考试中一定要仔细阅读题目的要求,以免失误。

你可能感兴趣的:(#,数据结构合集~,考研,算法,数据结构,笔记)