您的位置:首页 > 其它

查找

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链地址法:用单链表
 
    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: