数据结构复习(8)——查找

顺序查找

  1. 无序
    (1). ASL成功=(n+1)/2;
    (2). ASL失败=n+1。
  2. 有序
    (1). ASL成功=(n+1)/2;
    (2). ASL失败=n/2+n/(n+1)。(失败结点有n+1个)

折半查找=二分查找(有序)

  1. 代码演示:数据结构复习(8)——查找
  2. ASL成功= log2的(n+1)+1;
  3. ASL失败=(h层失败结点的个数*h)/总结点个数。

分块查找(块内无序块间有序)

数据结构复习(8)——查找
数据结构复习(8)——查找

B树、B+树数据结构复习(8)——查找

数据结构复习(8)——查找数据结构复习(8)——查找
数据结构复习(8)——查找

B与B+树的增删参考: https://segmentfault.com/a/1190000020416577

散列查找

  1. 散列函数、散列表、冲突的定义数据结构复习(8)——查找
    数据结构复习(8)——查找

  2. 构造散列函数的方法:数据结构复习(8)——查找
    数据结构复习(8)——查找
    数据结构复习(8)——查找
    数据结构复习(8)——查找
    数据结构复习(8)——查找

  3. 解决冲突的方法:
    (1). 开放地址法:
    数据结构复习(8)——查找
    数据结构复习(8)——查找
    数据结构复习(8)——查找(2). 不能随便删除数,因为别的数需要依靠其找到,可以添加一个删除标记,但是要记得定期维护。
    (3). 拉链法:
    数据结构复习(8)——查找
    数据结构复习(8)——查找
    (6). 平均查找长度-坑位