第8章 查找
为查找操作设置数据结构:查找结构
8.4.1折半查找(前提是需要按照顺序,从小到大或...)
8.4.2插值查找
这个公式貌似刷题的时候回见到!
8.4.3斐波那契查找(利用了黄金分割原理)
8.5线性索引查找
索引就是把一个关键字与它的对应的记录相关联的过程。
8.5.1稠密索引
稠密索引是一个记录一个索引项。
8.5.2分块索引
块内无序;块间有序
8.5.3倒排索引(百度搜索技术)
有了表,系统就通过表去查,而不是对每一篇文章中的每一个单词去顺序查找。
8.6二叉排序树
大小的关系注意啊。左树结点小于根,右树结点大于根。
对于这个,作图,用笔很好做,注意大小关系即可。
左子树结点最小。右子树结点大。双亲结点大小占中间。
8.6.3二叉排序树的删除操作
8.6.4二叉排序树总结
用来提出下一个问题:如何让二叉树平衡
8.7平衡二叉树
深度/高度之差的绝对值至多为1才算作平衡。
图2的59应该是右节点,而不是左节点。不符合二叉排序树的定义,更不可能是二叉排序树了。
结点58没有右子树,所以不平衡。高度是该节点到叶子节点的最长路径(边数)
树的高度;深度是从上往下数的,高度是从下往上数的,深度和高度都涉及到节点的层数(经过学习发现,深度、高度概念在不同的教材中有不同的定义,主要看高度深度的初值为几,有的为0,有的为1)。
定义一(初值为0):节点的深度是根节点到这个节点所经历的边的个数
节点的高度是该节点到叶子节点的最长路径(边数)
树的高度等于根节点的高度
8.7.1平衡二叉树实现原理
通过旋转使得它成为新的平衡子树。
不全。想看的话直接看书,好几页的内容
8.8多路查找树
8.8.1 2-3树
跳过了好多树的内容
8.9散列表查找(哈希表)概述
散列技术使得每一个关键字对应一个存储位置。根据对应关系找到关键字key的映射f(key)。
8.9.2散列表查找步骤
8.10散列函数的构造方法(感觉非重点)
要求1.计算简单;2.散列地址分布均匀;
8.10.1直接定址法
线性函数
8.10.2数字分析法
8.10.3平方取中法
???真的有用???
8.10.4折叠法
没结束呢