码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-10-19 14:00:52      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:测试报告   教师   分享图片   奇数   元素   程序设计   出现   技术分享   程序   

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.375

  • 散列查找(线性)
    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

感想

  • 二分查找对于偶数个元素来说不像之前奇数个那么简单
  • 对于散列查找的储存不需要排序!

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

标签:测试报告   教师   分享图片   奇数   元素   程序设计   出现   技术分享   程序   

原文地址:https://www.cnblogs.com/zhangyeye233/p/9815719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!