• 20172323 2018-2019-1 《程序设计与数据结构》课堂测试报告


    20172323 2018-2019-1 《程序设计与数据结构》课堂测试报告

    课程:《程序设计与数据结构》
    班级: 1723
    姓名: 王禹涵
    学号: 20172323
    实验教师:王志强老师
    测试日期:2018年10月
    必修/选修: 必修

    1.测试内容

    三种算法查找练习
    给定关键字序列11,78,10,1,3,2,4,21试分别用顺序查找、折半查找、散列查找(用线性探查法和链地址法)来实现查找。试画出它们的对应存储形式(顺序查找的顺序表,二分查找的判定树,两种散列查找的散列表),并求出每一种查找的成功平均查找长度。其中,散列函数H(K) = K % 11.

    2.测试过程及结果

    • 线性查找:从列表头开始比较查找每一个元素,要么找到该元素,要么抵达列表尾得出没有该元素的结论
    • 解题:将序列内元素装入顺序表中,从头挨个查找
    • 如图:

    • 折半查找:从排序列表的中间开始查找,如果中间元素不是目标元素,根据两个元素的大小关系,再判断从列表的前一半或是后一半进行查找。每次的查找都是从当前一串数字的中间元素开始的。直到最后找到该元素或是没有找到抛出一个信息。如果中间元素是偶数个,则选择前一个元素为中间元素。
    • 解题:首先将序列元素进行从小到大的排序,从中间元素进行查找
    • 如图

    • 散列查找(线性探查法)
    • 基本思想:在记录的存储地址和它的关键字之间建立一个确定的对应关系;这样,不经过比较,一次存取就能得到所查元素的查找方法。
    • 线性探查:线性探查法的地址增量di = 1, 2, ... , m-1,其中,i为探测次数。该方法一次探测下一个地址,知道有空的地址后插入,若整个空间都找不到空余的地址,则产生溢出。
    • 解题:因为散列函数H(K) = K % 11,所以通过哈希函数运算得出关键字序列的存储位置。

    1.首先在0索引处添加序列元素11

    2.在1索引处添加序列元素78

    3.在10索引处添加序列元素10

    4.在1索引处添加序列元素1,但因为1索引处已经有了元素78,发生冲突,按照线性探查法,探测下一地址,如果为空则插入,所以最终1添加到2索引处

    5.添加序列元素3到3索引处

    6.添加2到2索引处,2索引处不为空往后移一位,3索引处依然不为空,再往后移一位,最后添加到4索引处

    7.添加4到4索引处,发生冲突,往后移一位,添加到5索引处

    8.添加21到10索引处,不为空,往后移一位到0索引处,注意不是添加一个11索引处,发生冲突则往后移,直到6索引处

    9.最终得到哈希表,而查找每个元素所需要的比较次数如下

    10.ASL= (1 + 1 + 2 + 1 + 3 + 2 + 8 + 1 )/8 = 2.375
    11.错误分析:当发生冲突时,从发生冲突的那个单元开始,按照一定的次序,从哈希表中找出一个空闲的存储单元,把发生冲突的待插入关键字存储到该单元中,从而解决冲突的发生。如果是在哈希表尾的存储单元发生了冲突,则继续从0索引处开始寻找空闲存储单元,如果没有找到空闲的存储单元,则溢出,不能凭空生出一个新的索引处


    • 散列查找(链地址法)
    • 将所有相互发生冲突的同义词(哈希地址相同的关键字)存储在同一个单链表中。若干组同义词可以组成若干个单链表,可用一堆数组存放头指针
    • 解题:

    所以ASL= (1 x 6 + 2 x 2)/8 = 1.25

    • 链地址法的优点:
      • 处理冲突简单,且无堆积现象,因此平均查找长度短
      • 各链表上结点空间是动态的,适合造表前无法确定表长的情况
      • 在用拉链法构造的散列表中,删除结点的操作易于实现。
      • 开放定址法为减少冲突,要求装填因子α较小,故当结点规模较大时会浪费很多空间。而拉链法中可取α≥1,且结点较大时,拉链法中增加的指针域可忽略不计,因此节省空间

    3.参考资料

  • 相关阅读:
    FCN 分割网络详解
    ResNet 结构理解
    使用 Estimator 构建卷积神经网络
    Object Detection Review
    MP 及OMP算法解析
    Docker 使用及常用命令
    采用std::thread 替换 openmp
    模型优化,汇总
    图像几何变换
    多线程下C#如何保证线程安全?
  • 原文地址:https://www.cnblogs.com/Lewandodoski/p/9820673.html
Copyright © 2020-2023  润新知