首页 > 其他 > 详细

第七章学习小结

时间:2020-06-27 17:45:25      阅读:62      评论:0      收藏:0      [点我收藏+]

这一章主要学习了查找的基本概念、线性表的查找、树表的查找、散列表的查找等查找的相关知识

线性表的查找包括顺序查找、折半查找和分块查找

顺序查找比较简单,基本就是以前最常用的查找方法,不过现在多学了一个小技巧,可以在数组中设置哨兵,免去检测表是否查找完毕,减少查找所需时间

1 int search(int st[], int key, int n)
2 {
3     st[0]=key;
4     for(int i=n; st[i]!=key; --i);
5     return i;
6 }

折半查找在上学期的计算机科学导论课有了初步的认识,现在更深入地学习了这个算法

技术分享图片

 

要注意在操作过程中如果把high=mid-1改成high=mid,或者把low<=high改成low<high,都会发生错误

 

分块查找包括块间查找和块内查找两步,块间查找可以用顺序查找或二分查找,块内只能用顺序查找

技术分享图片

 

树表的查找主要是学了二叉排序树,每个结点的左子树中每个元素的值小于自身,右子树大于自身

技术分享图片

 

在一些情况下树的结构会不平衡,所以需要平衡二叉树,通过每一次插入结点的同时移动结点位置使整棵树平衡

 

除了二叉排序树之外还学习了b树、b+树等特殊结构

技术分享图片

 

技术分享图片

 

然后学习了散列表

散列表的构造方法包括数字分析法、平方取中法、折叠法、和常用的除留余数法等

处理冲突的方法包括开放地址法和链地址法两大类

开放地址法包括线性探测法、二次探测法、伪随机探测法等,用画图的方式很好理解,不过这周做题的时候忘了数组第一个下标是0,把第一个想成了1,然后后面全部画错,犯了低级错误,以后要记住这个教训

技术分享图片

 

链地址法是用于链表的查找

技术分享图片

 

这一周学习的内容比起上一章算不上很难,但很容易犯细节上的错误,接下来在学习中要多注意数组下标还有查找过程中容易出现的错误

另外最近上课方式从之前录播转到直播后还是有一点不太习惯,接下来要努力适应

第七章学习小结

原文:https://www.cnblogs.com/nzgfs/p/13198859.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!