声明:哔哩哔哩视频笔记
源地址
第一大题题目
第一大题解答
第一小问
根据0层数据流图来找,看数据流向和相应的处理模块匹配。并且这个第一问,肯定是能在说明中找到对应短语作为答案的。
第二小问
搞清楚具体存储数据的信息名字,可以在后面加上 一个 表 字, 就可以作为答案了。
第三小问
数据流知识:
- 数据流的起点和终点必须有一个是加工,至少有一个是加工。
- 上下两个图要平衡,上下文数据流图系统交互具有的数据流,0层数据流图也要有对应的数据流。
- 每一个加工至少有一个输出数据流和输入数据流
- 数据守恒,说明和数据流图的描述一致,不会凭空出现和消失。
- 这一步需要细细的分析才行
第四小问
这个题目跟着自己的感觉走
第二大题题目
第二大题解答
第一小问
像这个样子的实体是一个子实体,就是某个一般实体的特殊实体。
先在试卷上画一下结果,确认好再画到答题卡上。
第二小问
第三小问
这一问不要想太多,切合题目结合实际,按着感觉走。
第三大题,分值分别是4,8,3,题目
第一小问
用例一般是动词加上名词
第二小问,一分一个类名
第三小问
设计模式选对1.5分,解释原因1.5分
策略设计模式
第四大题题目
大顶堆
大顶堆(Max Heap)是一种特殊的二叉堆(Binary Heap),它是一种用于实现优先队列的数据结构。大顶堆具有以下特性:
-
堆属性:在一个大顶堆中,对于每个父节点P,P的值大于或等于其子节点的值。这意味着堆的根节点始终包含最大的元素。
-
结构属性:大顶堆通常是一棵完全二叉树,这意味着除了最底层,其他层的节点都是满的,而在最底层,节点从左到右填充,不留空。
大顶堆通常用于实现一些算法和数据结构,如堆排序、Dijkstra算法、Prim算法等,这些算法需要在运行时高效地找到最大值或进行优先级处理。在大顶堆中,最大的元素总是位于根节点,因此可以快速找到并移除最大元素。
大顶堆可以通过插入和删除操作来维护其属性,确保堆的结构属性和堆属性一直得到满足。在插入元素时,通常会将新元素添加到堆的底部,然后逐级向上调整,以确保堆属性保持不变。在删除元素时,通常会删除根节点,并将堆的底部元素移到根的位置,然后逐级向下调整以保持堆属性。
小顶堆(Min Heap)与大顶堆相反,其中每个父节点的值都小于或等于其子节点的值。它们在解决不同类型的问题时都有广泛的应用。
第一小问,堆排序给我整懵逼了,算法有点难搞
第二小问
堆排序的时间复杂度
第三小问
两种作答形式皆可,但是推荐第一种画图。
将第一个元素脱离,再调整成大顶堆后的数组为:
但是这里,第一个元素只是逻辑上脱离,但是物理上仍然存储在数组之中,这里还是要将第一个元素写上。
这一题可以在编译器运行代码测试一下。
第五大题题目,选做,需要填涂,默认小题号
第一小问
- 接口中的空找实现这个接口的类,寻找具体的方法。
- 相应的修饰符和参数写清楚写对,一般 修饰符最好不要省略。
- 构造方法按照方法的参数来传参。
对于冗余的修饰符,只要不会使程序报错,一般会给分,但是既然是冗余的,不写当然也可以。
第六大题
因为我主要学习的是Java,这里就是题目和答案