Chapter 5 查找

Posted 糖醋麻辣虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chapter 5 查找相关的知识,希望对你有一定的参考价值。

Chapter 5 查找

1-   顺序查找法 O(n)

    

2-   折半查找O(logn) :二分查找

      要求:关键字有序

      过程:

      判定树:叶子结点为方框,代表不成功的结点。

3-   分块查找:索引顺序查找

     

       ASL = ASL1+ASL2

4-   二叉排序树(BST)

      特点:左<根<右

5-   平衡二叉树(AVL)

6-   B-树(B数)

      特点:

      1      分支数 = 关键字数 + 1,最大分支数就是B树的阶数

      2      根结点至少有1个关键字,两个分支

              其余结点至少有 个分支, -1个关键字

      3      结点内关键字互不相等按从小到大顺序排列

      4      叶结点处于同一层,是查找失败到达的位置(计算结点数时要算上)

      5      下层结点的关键字取值在上层所划分区间内

     基本操作:

      1      查找:多路查找

      2      插入:可能引起拆分,多次拆分叫连锁反应

      3      删除:直接删,不够找兄弟借,再不够合并

7-   B+

      B-树和B+树的区别:(先B+,后B-)

      1         B+树:n个关键字n个分支

                 B-树:n个关键字n+1个分支

      2         关键字个数:  ≤n≤m      -1≤n≤m-1

                 根结点个数:  2≤n≤m          1≤n≤m-1

      3         B+树:非叶子结点只是个索引,不包含关键字对应记录的存储地址

                 B-树:每个关键字对应一个记录的存储地址

                 B+树:叶子结点包含信息和全部关键字,叶子结点引出的指针指向记录

                 B+树:有一个指针指向关键字最小的叶子结点,所有叶子结点链接成一个线性链表

8-   散列表(哈希表)

      H(key) ---- 哈希地址

      发生冲突----同义词

      Hi(key)----解决冲突后的地址

      查找成功的ASL1 = 每个关键字的比较次数

      查找失败的ASL2 = 由该地址开始到空地址为止进行比较操作的次数

      常见Hash函数构造方法:除留取余法

      常见解决冲突方法:

      1        开放定址法:包括线性探查法等…

      2        链地址法:

      性能分析:α(装填因子) = 关键字个数/表长

      Hash表的ASL与α有关,与关键字无关。

注:

1        顺序表查找优点是顺序/链式均可,缺点是n较大时,ASL大,效率低

2        折半查找适合顺序,不适合链式,且要求有序

 

以上是关于Chapter 5 查找的主要内容,如果未能解决你的问题,请参考以下文章

Python Chapter 10: 列表 Part3

《算法导论》— Chapter 12 二叉查找树

chapter 5

Chapter 5 团队和流程

Chapter one

[CHAPTER 5] Diagon Alley