and Data
以下内容来自学霸的独家宝典,供正在复习准备迎战补考的同学们参考喔
算法与数据结构这门课的考试虽然是以java为教学语言,但考试真正涉及java的只有最多15分(这些甚至用java以外语言也可以得分)。因此,从效率最大化的角度来说,这门课的复习不应该从java基础知识学起,PPT上的重点也不应该是代码。堆栈、队列、树、图、二叉堆、散列、不相交类集的性质和应用占考试分数的55%,就上次考试来说,这些内容与java无关(需要涉及机器语言的大多不作为简答、选择的考察内容)。这55%考察的是我们为什么、怎么使用这些结构,这些结构又能够解决什么问题。而程序填空的30%,可以说是最容易得分的部分,考察范围极小,全部背出来就能拿满分。我个人建议如果时间有限,需要最先确保默写的30多分能拿到,之后再考虑熟悉上述模型(优先度为图>>散列=树>堆栈=队列>二叉堆>>不相交类集),最后学有余力再去考虑学习java的编程语言(例如主函数怎么写,bfs和dfs遍历怎么实现),以应对最后的15分。
一、题型分析
Type
题型:选择题(20%)
程序填空(30%)
简答题(35%)
程序设计题(15%)
上次期末考试中:
选择题一共10题,涉及各章节的概念和性质java二分查找算法代码 中德小课堂 | 算法与数据结构(补考不慌~),不涉及任何算法,难度较低。
程序填空15个空,默写题,与书上的代码完全一样。
简答题4题(5+10+5+15),图论题的分数较高java二分查找算法代码,需要作图,不涉及任何算法。
程序设计题2题(7+8),第一题为归并排序,属于默写题,第二题程序设计题,有且仅有这题需要对java有一定的了解,写出设计思路即可得部分分数,难度较高。
二、考点
第一章:
无,泛型类可以尝试去了解,了解仅能帮助你考试时清晰类的概念,少犯低级错误。
第二章:
(1)算法复杂度(O、o、Ω、H、ω)
(2)二分查找算法工作原理
第三章:List
(3)栈、队列的性质和应用
第四章:Tree
(4)二叉树属性的使用
(5)二叉搜索树、AVL树、B树的构建
(6)二叉搜索树、AVL树的插入和删除
(7)B树的插入
第五章:
(8)负载因子的定义
(9)四种哈希表的构造
第六章: Queue
(10)二叉堆的性质
(11)掌握算法:、、、
第七章:
(12)了解shell排序、归并排序、堆排序、快速排序的原理
(13)掌握算法归并排序、堆排序、快速排序。
第八章: Set
(14)对于不相交集合java二分查找算法代码,掌握任意联合,按大小联合
第九章:Graph
(15)对称矩阵的压缩存储
(16)使用prim和算法构造图的最小生成树
(17)给定图的拓扑排序
(18)知道如何构造一个图的BFS和DFS序列。掌握BFS和DFS的算法。
第十章:
(19)哈夫曼树的性质
三、重点分析
Key
(1)算法复杂度(O、o、Ω、H、ω)
上次考试未出现
重点为大O标记法,可能考察其性质,比如O(n2+n)应该记作O(n2),也有可能问某种算法的复杂度,常见的:
二分查找( N ) = O( log2N )
插入排序( N ) =O(N2)
Tbest( N ) =O(N)
希尔排序o(N2)(注意是小o)
( N )=H(N2)
归并排序 T ( N ) = O( N+ )
快速排序 Tbest( N ) = O( )
涉及到分治策略的(比如二分查找,归并排序,快速排序)这种将问题一分为几解决的,复杂度中必包含对数logN。
(2)二分查找算法工作原理
上次考试出现在选择题,问查找的次数
这部分还是通过代码了解吧,很好理解,理解了题目也会做了。
主要思想是一个已排序数列对半分比较查找数和中间数的大小,从而判断选取前后哪一半继续二分,从而缩小查找范围。
(3)栈、队列的性质和应用
上次考试出现在选择题第二题,问哪个不是线性结构
第三章的模型都是线性结构,栈是头进头出,一般应用在涉及DFS的代码中(比如树的前中后序遍历)会使用栈。队列是尾进头出,用于图论中涉及BFS算法的(比如拓补排序,最短路径)。以上两类代码只会出现在最后一题。
考察栈的应用一般为检查括号是否合法,中缀表达式转后缀表达式,后缀表达式计算,ppt上的例题都看一下。
(4)二叉树属性的使用
上次考试出现在选择题最后一题,问最多结点数
二叉树就是每个父节点至多有两个孩子的树,完全二叉树是指除了最后一行全都排满结点的树,关于树的depth、、、 of node的定理以及代数关系请务必了然。
(5)二叉搜索树、AVL树、B树的构建
上次考试未出现
二叉搜索树为对结点内数字有要求的二叉树,要求满足左孩子
文章来源:http://mp.weixin.qq.com/s?src=11×tamp=1682557886&ver=4493&signature=NdHMDMxdJ63h-SZDcl0lJJwEwnNR3yt6P00S5thqtXwM8p1PuJWTDhRuwJPcSk8JEy9amskOJJbQvkecFURtUt-DI87kcDak-CWausGaNN8Y*ExJQG-c42MYA0c5Ts&new=1