查找(顺序、折半、分块、BST、AVL、B-树、B+树、散列表、KMP)

思维导图

查找(顺序、折半、分块、BST、AVL、B-树、B+树、散列表、KMP)_第1张图片

查找分类

  • 按功能
    动态查找表可以对查找表结构进行修改,而静态查找表只是查询
    静态或者动态都是针对查找表而言的。动态表指查找表中有删除和插入操作的表。
    静态查找表即只有查找操作,如顺序、折半、散列
    动态查找表可以添加删除,如BST、AVL、B、B+、散列
  • 按结构
    线性表、树表、散列表

线性表的查找

顺序查找

无序线性表、有序表
有序表用到判定树

折半查找

分块查找

吸取顺序和折半优点
块内无序、块间有序

树表的查找

二叉排序树BST

ASL大

平衡二叉树AVL

改进的排序二叉树,ASL小,平衡因子不大于一
平衡调整:

  1. LL调整,右单旋转调整
  2. RR调整,左单旋转调整
  3. LR调整,先左后右双旋转调整
  4. RL先右后左双旋转调整

B-树

查找(顺序、折半、分块、BST、AVL、B-树、B+树、散列表、KMP)_第2张图片

平衡二叉树扩展
结点多关键字的平衡树

B+树

查找(顺序、折半、分块、BST、AVL、B-树、B+树、散列表、KMP)_第3张图片

  • B树分支从关键字之间引出,结点n+1分支/空指针,每个关键字都是存储地址
  • B+树分支从关键字引出,结点n个分支/记录,非叶节点索引作用
  • 分支引出位置不同导致分支数目不同
  • B+叶子节点包含信息,非终端只有索引作用
  • B-树每个结点都有信息
  • B+树用指针指向关键字最小的叶子结点,并将叶子节点链接成线性链表

B-树分支从关键字两端引出,B+树分支是从关键字引出
B-树每个节点都包含信息,B+只有叶子结点包含信息,右叶子结点的指针指向记录存储地址,非叶子节点的索引项只有索引作用
B+树可以用指针指向关键字最小的结点,并连接所有叶子结点成线性链表

散列表

KMP

你可能感兴趣的:(past)