- 博客(21)
- 收藏
- 关注

原创 Chinese-English Dictionary based on Binary Search Tree (RedBlack Tree and B-Tree)
平衡性好:通过红黑规则保证了树的高度相对平衡,从根节点到叶子节点的最长路径不会超过最短路径的两倍。这使得查找、插入和删除等操作的时间复杂度稳定在 ,在动态数据集合中能保持较好的性能。例如,在频繁插入和删除数据的情况下,红黑树能够自动调整平衡,保证操作效率。适合内存操作:在内存中,由于其二叉树的特性,遍历和操作的逻辑相对清晰,对于小规模数据或者对内存数据结构要求较高的场景(如一些编程语言的标准库中的数据结构实现)表现良好。存储效率相对B树较低。
2025-01-07 16:49:30
683

原创 单周期CPU电路设计
本实验旨在让学生通过设计一个简单的单周期 CPU 电路,深入理解 RISC-V 指令集的子集功能实现,掌握数字电路设计与实现的基本流程,包括指令解析、部件组合、电路设计以及功能仿真等环节,同时培养verilog HDL编程能力和对课程知识的理解。
2024-12-29 20:52:45
1198

原创 CSAPP-Lab5_shelllab
本lab是编写一个支持作业控制的简单Unix shell程序,运用 waitpid, kill, fork, execve, setpgid, sigprocmask等,会让我们更加熟悉过程控制和信号的概念。
2024-06-27 13:23:38
876

原创 CSAPP-Lab4_cachelab
本lab主要是为了深入理解cache的机制,完成了模拟cache行为的实现以及应用,以及理解缓存内存对C程序性能的影响。
2024-05-26 09:49:45
974
1

原创 CSAPP-Lab3_attacklab
最近学校布置了attacklab的相关实验作业,每个人定制一个target,可以利用objdump,gdb等作为辅助工具进行实验。
2024-05-20 16:47:03
758
2
原创 MinCostMaxFlow-Graph Algorithm
图的构建使用邻接表来存储图的结构,每个节点对应一个列表,列表中存储从该节点出发的所有边。通过addEdge方法添加有向边及其反向边,同时设置正向边和反向边的相互引用。最小费用最大流算法算法主体在方法中,使用循环不断寻找增广路径,直到无法找到从源点到汇点的路径为止。在每次循环中,使用 Dijkstra 算法来寻找从源点到汇点的最小费用路径,通过维护距离数组dist、前驱边数组parent和优先队列pq来实现。找到最小费用路径后,确定增广路径上的最小剩余容量flow,然后沿着增广路径更新流量和费用。
2024-12-20 23:46:16
482
原创 Lab 3 自动售货机设计
本实验旨在设计一个自动售货机控制器,可以按照规定正确售出6种货物。通过该实验,可以提升Verilog HDL编程能力,加深对Verilog HDL语言的理解和应用,熟悉数字电路设计过程。
2024-12-02 18:49:31
710
原创 Single-Source Shortest Paths-Graph Algorithm
定义一个图的数据结构,包括顶点数量 (V),顶点权重 (weights),以及邻接表 (adj)。使用构造函数接收顶点的权重和边的信息,并初始化邻接表。
2024-12-02 18:38:49
724
原创 Scheduling to maximize profit-Greedy Algorithm
由于时间点的数量是 O(d)(其中 d是最大的截止时间),但是内部的操作是一个取决于作业数量的循环,并且每个时间点都有额外的排序步骤(对每个时间点的作业按利润排序)。2. 结果列表 result:这个列表最终会包含所有被选择的作业,空间复杂度也是O(n),在最坏情况下,所有作业都能被选择。- ScheduleJob函数基本思路:按照作业的截止时间进行排序,然后对于每个时间点上,我们选择利润最高的作业。2. 构建时间段:将作业分配到不同的时间段中,时间段的起始时间是作业的有效执行时间。
2024-12-02 17:44:17
733
原创 Lab2-ALU
本实验旨在设计和实现一个简单的算术逻辑单元(ALU),使其能够执行四种基本的运算,包括加法、减法、取反和乘法,以及数码管的使用。通过本实验,掌握ALU的基本功能结构及其逻辑电路设计,同时增强对数字电路的理解。
2024-11-15 22:13:26
1211
原创 Lab1 译码器和编码器
3-8线译码器可以把任何3位码字译成八个输出,每种输入组合对应一个唯一的输出,而每个输出代表3个输人变量的一个最小项,3个非门提供反变量输入,而8个与门分别产生最小项中的一项。这次实验让我更好地理解了布尔表达式、真值表与卡诺图的结合,以及译码器,编码器的实现原理。在实现4_2编码器时,发现不考虑优先级时,可能出现与实际不符的情况,因此参考书上例子,从而得到优先编码器的实现逻辑,进而实现。定义x,y,V三个变量,x,y作为输出变量,V仅作为理论值,用以表示是否存在有效输入,不在输出范围。
2024-11-15 22:09:15
771
原创 Leetcode1103. 分糖果 II(java)
重复上述过程(每次都比上一次多给出一颗糖果,当到达队伍终点后再次从队伍起点开始),直到我们分完所有的糖果。注意,就算我们手中的剩下糖果数不够(不比前一次发出的糖果多),这些糖果也会全部发给当前的小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友。,打算把它们分给排好队的 n = num_people。然后,我们再回到队伍的起点,给第一个小朋友。的数组,以表示糖果的最终分发情况(即。颗,依此类推,直到给最后一个小朋友。个小朋友分到的糖果数)。颗糖果,第二个小朋友。
2024-06-03 08:20:35
532
有人用java做过连连看游戏吗
2024-05-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人