第7章学习小结

在第七章我们学习了查找算法:

查找主要包括三种结构:①线性表 ②树表 ③哈希表

一、线性表:

  顺序查找 折半查找 分块查找
查找时间复杂度 O(n) O(log2n) ASL = L查块 + L块内查找
特点 毫无特点 效率高一点点咯 甚至不如折半查找
通用情况 任何结构都行 有序的顺序表 块间有序、块内无序的顺序表

二、树表:

  1.二叉排序树:平衡二叉树最好

  2.B-树:是一种外存文件系统中常用的动态索引技术;

  3.B+树:更适合做文件索引系统。严格来讲,它不属于第五章定义的树(其实我觉得有点像块内有序的分块查找)

三、哈希表(散列表):

  1.术语介绍:

    1)散列函数和散列地址:p = H(key) 对应关系(H);p(散列地址);关键字(key)

    2)冲突和同义词:冲突现象;同义词是对于关键字而言的

  2.散列函数的构造方法:

    1)数字分析法的适用情况:明确知道所有关键字的每一位上各种数字的分布情况。

    2)平方取中法:不能事先了解所有关键字的情况,或难于直接从关键字中找到取值较分散的几位。

    3)折叠法:分为移位叠加和边界叠加。适用于散列地址位数较少,而关键字的位数较多,且难于直接从关键字中找到取值较分散的几位的情况。

  3.处理冲突的方法:

    1)开放地址法:线性探测法、二次探测法和伪随机探测法。缺点:会产生“二次聚集”现象。

    2)链地址法:基本思想是构造一个邻接表一样的存储结构,把具有相同散列地址的关键字放在同一个单链表中(同义词链表),再把各个单链表的表头放到数组中。

  4.平均查找长度(ASL):散列表的ASL是 α(裝填因子)的函数,而不是 n(记录个数)的函数。

    在查找概率相等的前提下,直接计算查找成功的平均查找长度:

 

    查找失败的平均查找长度:

 

 ##---------------------------分割线--------------------------##

上次目标,在我的标准中达成了,上两周在树蛙的DDL压力下完成了一篇关于NLP的论文阅读以及关于这篇论文的演讲。

接下来的目标就是好好学习python的基础知识。另外、要在这两周构建这个学期关于DS的完整知识框架体系。

posted @ 2019-06-01 19:17  Winston-wmj  阅读(190)  评论(0编辑  收藏  举报