• 20172322 2018-2019-1 10月19日课上测试报告


    20172322 2018-2019-1 10月19日课上测试报告

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

    增补的习题原题

    需要查找的数字初始顺序为11,78,10,1,3,2,4,21

    课上提交的作业所存在的问题

    • 二分查找部分的ASL算错。
    • 散列查找(线性)部分的储存结构错误,ASL算错。
    • 散列查找(链地址)部分的储存结构错误。

    改正方案及分析思路

    • 二分查找
      先排序,排序后顺序为:1 2 3 4 10 11 21 78
      放入数组中,(假设算法中要求先找较小的数)
      如图:

    ASL = (1 + 22 + 34 + 4 )* 1/8 = 21/8 = 2.625

    • 散列查找(线性)
      n = 8 ,故m的取值在应在8.8-13.6之间,本次选取11作为m。
      如图,

    其中11,78,10先行进入第0,第1,第10个位置,
    1需要放入时出现冲突,故(1+1)/ 11 = 2,所以1放入第2个位置。
    3放入第3个位置,
    2需要放入时产生冲突,故(1+1)/11=2也有冲突,故(1+1+1)/11=3,所以2放入第4个位置,
    4需要放入时产生冲突,故(4+1)/11=5,5放入第五个位置,
    21需要放入时产生冲突,故21放入第6个位置。

    ASL = (1+1+2+1+3+2+1+8) * 1/8 = 2.375

    • 散列查找(链地址)
      如图,

    11,78,10先行进入第0,第1,第10个位置,
    1需要放入时出现冲突,故将1放入78的链后,
    3,2,4放入时均无冲突,
    21放入时产生冲突,故将21放入10的链后。

    ASL = (81 + 22)/8 = 1.25

    感想

    • 二分查找对于偶数个元素来说不像之前奇数个那么简单
    • 对于散列查找的储存不需要排序!
  • 相关阅读:
    PostgreSQL pg_hba.conf 文件简析
    Centos 查看端口占用情况
    Nginx 从0开始学
    windows 杀死端口号对应进程
    MyBatis基础-05-缓存
    MyBatis基础-04-动态sql
    MyBatis基础-02
    SpringMVC基础-14-SpringMVC与Spring整合
    SpringMVC基础-13-SpringMVC运行流程
    SpringMVC基础-12-异常处理
  • 原文地址:https://www.cnblogs.com/zhangyeye233/p/9815719.html
Copyright © 2020-2023  润新知