【数据结构】第7章 查找

136 阅读2分钟

提示
仅供个人回顾参考

基本概念

  • 查找
  • 查找表
  • 静态查找表: 无需动态查找表
  • 关键字
  • 平均查找长度

顺序查找(线性查找)

  • 定义
    • 无序线性表及有序线性表顺序查找
  • 一般线性表顺序查找
  • 有序表顺序查找
    • 折半查找(二分查找)
    • 分块查找(索引顺序查找)

树形查找

  • 二叉排序树(BST)

    • 主要是提高查找,插入,删除关键字的速度
    • 基本操作
      • 插入
      • 创建(构造)
      • 删除
    • 效率分析
      • 查找: BST查找不唯一,相同关键字插入顺序不同,生成不同二叉排序树(相对二叉查找)
      • 插入与删除:O(n)O(n)
  • 平衡二叉树(AVL树 Balanced Binary Tree)

    • 定义
      • 左右子树高度差为该结点的平衡因子
      • 左右子树高度差不超过1的二叉树
    • 基本操作
      • 插入
        • 插入目标结点
        • 导致不平衡
        • 平衡调整
        • LL平衡旋转(右单旋转)
        • RR平衡旋转(左单旋转)
        • LR平衡旋转(先左后右双旋转)
        • RL平衡旋转(先右后左双旋转)
      • 删除
        • 删除目标结点
        • 导致不平衡
        • 平衡调整
      • 查找
        • n个结点的平衡二叉树最大深度O(log2n)O(log_2n)
        • 平均查找长度O(log2n)O(log_2n)
  • 红黑树

    • AVL 频繁调整全树整体拓扑结构,代价较大
    • 定义
      • 二叉排序树
      • 结点红色或黑色
      • 根结点黑色
      • 叶结点黑色
      • 不存在相邻红结点
      • 每个结点至叶结点黑结点数量相同
    • 性质
      • 根到叶最长路径不大于最短路径的2倍
      • n个结点的红黑树高度h<=2log2(n+1)h<=2log_2(n+1)
      • 新插入结点初始为红色
    • 基本操作
      • 插入
      • 删除(算法逻辑难度高)
  • B树

    • 定义
      • m阶B树,平衡因子均等于0的m路平衡查找树
      • 根非叶子时至少两颗子树
      • 除根结点外,所有非叶结点至少m/2⌈m/2⌉个子树,即至少有m/21⌈m/2⌉-1个关键字
      • 所有叶结点都在同一层次
    • 性质
      • 高度
    • 基本操作
      • 查找
      • 插入
      • 删除
  • B+树

    • 数据库所需的一种B树变形树
    • 定义
      • 分支节点最多m个子树
      • 未完待续..
    • 算法
      • 最小关键字开始顺序查找
      • 根结点开始多路查找

散列表

  • 考点
    • 选择题:平均查找长度
    • 算法题:构造的散列表
  • 基本概念
    • 散列函数
    • 散列表: 建立了关键字与存储地址的一种直接映射关系
  • 基本操作
    • 创建
      • 直接定址法
      • 除留余数法
      • 数字分析法
      • 平方取中法
    • 处理冲突的方法
      • 开放地址法
      • 线性探测法
      • 平方探测法
      • 双散列法
      • 伪随机序列法
      • 拉链法(链接法, chaining)
  • 性能分析
    • 平均查找长度
    • 取决3个因素: 散列函数,处理冲突的方法,装填因子