顺序查找和折半查找

顺序查找

顺序查找就是最基本的按顺序一个个查

一般线性表的顺序查找

有序表的顺序查找

有序表就是按顺序排好,如果发现前一个数小于要查的数,后一个数大于要查的数,就可返回失败

折半查找

二分查找,仅适用于有序表

例:查找33 数组[7,10,13,16,19,29,32,33,37,41,43]

二分查找判定树

ASL=1×1+2×2+3×4+4×811=3
ASL=3×4+4×812=113

分块查找

又称索引顺序查找,一般不考察代码
LbRRgM

像上图将数据分成几组,第一组是10以下的,第二组是10到20的...往后以此类推

SwRd2Z

设长度为n的查找表均匀地分为b块,每块s个元素,则

ASL=LI+LS

LI : 索引查找的平均查找长度;LS: 块内查找的平均查找长度

顺序查找效率最快时,=n

分块查找特点:块内无序、块间有序

在索引表中确定待查元素所属分块可以使用顺序查找,也可以使用二分查找

在块内使用顺序查找

错题集

  1. O0P6F4

    答案与解析:
    答案: B
    解析:
    - 第一次:low=1,high=11,mid=(1+11)/2=6
    - 第二次:low=6+1=7,high=11,mid=(7+11)/2=9
    - 第三次:low=9+1=10,high=11,mid=(10+11)/2=10.5=10
    - 第四次:low=10+1=11,high=11,mid=11
  2. LQOvPR

    答案与解析:
    答案: A D
    解析:

    成功的ASL=(1+2x2+3x4+4x5)/12=37/12
    失败的ASL=(3x3+4x10)=49/13
    查找失败结点的ASL不是图中的方形结点,而是方形结点上一层的圆形结点
  3. TL9Agd

    答案与解析:
    答案: B
    解析:
    S=3
    ASL=(S2+2S+n)/2S=(9+6+123)/6=23
  4. FA0efY

    答案与解析:
    答案: A
    解析:

    先按二叉排序树填满选项中的树
    • B:4和5那里说明是向上取整,但7和8是向下取整,相矛盾所以错误
    • C:3和4向上取整,6和7向下取整
    • D:1和10向下取整,6和7向上取整