查找
2016-03-23 12:48
260 查看
一、查找的基本概念
1、查找就是查找某个特定的元素是否在查找表中,或者查那个元素的属性,或者忘查找表中进行插入或者删除操作。仅仅查的话就是静态查找,进行增删操作的就是动态查找
二、静态查找
有三种方法。
一种是顺序查找。
一种是有序查找,即使用二分法
一种分块查找:也叫索引顺序查找。就是增加一个索引表,里面的每个元素代表查找表中的一个范围。每个元素包含两个域,一个说明那个区间范围类最大的data是对多,一个说明那个区间的起始下标
三、动态查找
1、二叉排序树
二叉排序树的左子树的值小于根节点,右子树大于等于根。查找的效率取决于树的结构。
2、二叉平衡树(二叉平衡树AVL)
即根的左子树和右子树的高度差最大值为1。根的左子树和右子树都是二叉平衡树。每个点维护一个平衡因子。因子为-1则左右两个相差一个高度,为0就相同。
四、B树和B+树
1、B树
当有m层的时候,每个点的孩纸有m/2到m个。所有的叶节点都在同一层。树结构总是树高平衡的。
M阶B树的插入操作:首先找最下层的内部节点。如果节点的孩纸个数小于m,那就直接插入。如果个数等于m,就把节点分为两个节点,把中间的关键字提升为父节点。然后循环
2、B+树
每个节点的关键字等于孩纸个数,所有非最下层的内层节点的关键字是对应子树上的最大关键字,最下层包含了全部关键字。
除根节点外,每个内部节点有m/2到m个孩纸。
且所有叶节点在树的结构的同一层
五、散列表
1、散列表就是将数据根据散列函数计算后放于指定的位置。选择散列函数时,要考虑:选择一个易于计算的散列函数,最小化冲突发生的次数
2、构造散列函数的方法有平方取中法、除留余数随机数法
3、处理冲突的方法
A开放定址法:在冲突时,得到另一个散列地址。有线性探测法和随机探测法
B链地址法:用单链表
1、查找就是查找某个特定的元素是否在查找表中,或者查那个元素的属性,或者忘查找表中进行插入或者删除操作。仅仅查的话就是静态查找,进行增删操作的就是动态查找
二、静态查找
有三种方法。
一种是顺序查找。
一种是有序查找,即使用二分法
一种分块查找:也叫索引顺序查找。就是增加一个索引表,里面的每个元素代表查找表中的一个范围。每个元素包含两个域,一个说明那个区间范围类最大的data是对多,一个说明那个区间的起始下标
三、动态查找
1、二叉排序树
二叉排序树的左子树的值小于根节点,右子树大于等于根。查找的效率取决于树的结构。
2、二叉平衡树(二叉平衡树AVL)
即根的左子树和右子树的高度差最大值为1。根的左子树和右子树都是二叉平衡树。每个点维护一个平衡因子。因子为-1则左右两个相差一个高度,为0就相同。
四、B树和B+树
1、B树
当有m层的时候,每个点的孩纸有m/2到m个。所有的叶节点都在同一层。树结构总是树高平衡的。
M阶B树的插入操作:首先找最下层的内部节点。如果节点的孩纸个数小于m,那就直接插入。如果个数等于m,就把节点分为两个节点,把中间的关键字提升为父节点。然后循环
2、B+树
每个节点的关键字等于孩纸个数,所有非最下层的内层节点的关键字是对应子树上的最大关键字,最下层包含了全部关键字。
除根节点外,每个内部节点有m/2到m个孩纸。
且所有叶节点在树的结构的同一层
五、散列表
1、散列表就是将数据根据散列函数计算后放于指定的位置。选择散列函数时,要考虑:选择一个易于计算的散列函数,最小化冲突发生的次数
2、构造散列函数的方法有平方取中法、除留余数随机数法
3、处理冲突的方法
A开放定址法:在冲突时,得到另一个散列地址。有线性探测法和随机探测法
B链地址法:用单链表
相关文章推荐
- 数组和广义表
- http协议学习
- 串-KMP算法
- 栈和队列
- 线性表
- 转-int ,long , lo…
- 转-struct和typedef的用法
- 发送多张图片进行区分
- 发送单张图片时解决打开问题
- Linux学习笔记(十一)-系统安全篇…
- Linux学习笔记(十)-服务器配置篇…
- Linux学习笔记(九)-服务器配置篇…
- Linux学习笔记(八)-程序开发篇之…
- Ubuntu安装中文输入法
- BZOJ3679: 数字之积
- Springframework(一)spring基础概念介绍
- Linux学习笔记(七)-网络篇和多媒…
- Linux学习笔记(六)-系统管理篇之…
- Linux学习笔记(五)-系统管理篇之…
- Linux学习笔记(四)-系统管理篇之…