- 博客(94)
- 收藏
- 关注
原创 RedBlackTree(红黑树)
极端情况下,最短路径都是黑色结点,不存在红色结点,最长路径是一黑一红的黑红相间,但是,一棵红黑树不一定存在最长路径和最短路径,也有可能是平衡的。且插入结点的grandfather结点一定是黑色(在插入结点之前的树一定是红黑树,说明不存在连续的红色结点)。和情况一不同的是,情况二经过旋转+变色,无论是p变为黑色结点还是cur变为黑色结点,都不需要再向上处理。插入新结点的颜色必须是红色,如果插入新节点的颜色是黑色,则大概率会违反。一个红色结点的孩子必然是黑色,一个黑色结点的孩子可以是红色也可以是黑色。
2024-07-13 11:28:39 687
原创 AVLTree(平衡二叉树)
相比BinarySearchTreeNode,AVL树的结点引入平衡因子 = 右子树高度 - 左子树高度,并且多加了指向父亲的指针。
2024-07-10 16:40:21 1059
原创 算法——同步算法
后面步骤省略,结束条件是有一个遍历结束,则结束。另一个剩余元素则push到差集。,与此类似的还有求差集,相关的解法有很多。通过这道题,引出被广泛应用的同步算法。数据同步算法最常见的应用就是手机云存储。应用需求:要求同时求出差集和交集。2.依次比较,比较结果是小的就push到差集。1.同时遍历两个数组(也可以是其他)3.比较结果相同的就push到交集。4.比较结果不相等时,值为小的++,遍历数组插入set即可去重。5.比较结果相等时,同时++
2024-07-08 11:45:07 310
原创 链表——随机链表的复制
再遍历原链表,此时,通过基于map重载的[]运算符,可以返回原链表结点random对应的V即复制结点。过去的算法是修改原链表的next,让每个复制结点位于原链表结点后面。这道题的关键在于完成链表复制后,如何修改random指针。map 的结点为 K原链表结点和V复制链表结点。基于这篇文章算法的改进。
2024-07-08 11:05:14 409
原创 STL——map和set
要求统计个数。比如要求你统计数组中有每种水果有几个string arr[] = { "苹果", "西瓜", "苹果", "西瓜", "苹果", "苹果", "西瓜","苹果", "香蕉", "苹果", "西瓜", "香蕉", "草莓" };if (it!else这是正常的写法。
2024-07-07 15:41:25 795
原创 计算机组成结构—IO接口(IO控制器)
两个系统或两个部件之间的交接部分,一般就称为。接口可以是硬件上两种设备间的连接电路;也可以是两个软件之间交互的逻辑边界。主机与 I/O 设备之间,专门设置一套硬件电路、配合相应的软件控制,实现两者间的信息交互,这就是。不同的 I/O 设备都有其相应的设备控制器,而它们往往都是通过 I/O 接口与主机取得联系的。
2024-06-07 18:57:41 1993
原创 计算机组成结构—IO系统概述
在计算机中,除 CPU 和主存两大模块之外,第三个重要部分就是,也叫做,简写为。I/O 系统的主要功能,就是对不同类型数据信息的输入输出,进行高效的控制管理。
2024-06-07 18:48:47 1376
原创 计算机组成结构—总线
并且对所有从模块都用同一限时,这就势必造成,对各不相同速度的部件而言,必须按最慢速度的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。在第一个子周期,主设备 A 获取总线使用权后,将命令、地址及其它有关信息都发到系统总线上,经总线传输,由从设备 B 接收下来。后来,虽然改进为以存储器为中心的分散连接结构,I/O 与主存交换信息可以不经过运算器,又采用了中断、DMA 等技术,使 CPU 工作效率得到很大的提高,但是仍无法解决I/O设备与主机之间连接的灵活性。
2024-06-06 19:58:53 1397
原创 计算机组成结构—多处理器
SIMD 的特点是,设置了多个并行的执行单元,而所有的执行单元都是同步的,执行的指令从同一个 PC 中取出,由同一个控制单元来进行调度管理。于是多处理器又可以划分为两种架构。尽管物理地址空间是统一的、共享的,但如果存储器本身也采取了并行架构(例如多模块存储器),不同的处理器对存储器不同部分的访问可能就会有区分。在支持硬件多线程的 CPU 中,需要为每个线程提供单独的寄存器堆和 PC 等资源,这样就可以在共享资源的同时保持线程的独立状态。这样,每个处理器对所有存储单元的访问时间都大致相同,是对称的系统架构。
2024-06-06 19:37:37 996
原创 计算机组成结构—中断和异常
计算机在执行程序的过程中,有时会遇到一些异常情况或者特殊请求;这时就需要计算机暂停正在运行的程序,转而先去处理这些异常或特殊请求,处理结束之后再返回程序的断点处继续执行。这种处理方式就被称为 “”,计算机的这种功能就称为;实现这种功能所需的软硬件技术统称为。很显然,对于一些突发情况和实时传来的外部信号,相比时刻查询的方式,使用中断技术可以大大地提高计算机的整体效率。能够引发中断的因素有很多,比如等等。通常将能够引起中断的各种因素称为。根据各种中断源的类型,可以对中断进行不同的分类。
2024-05-24 19:44:55 1114
原创 计算机组成结构—控制器的原理和设计
控制单元 CU 控制一条指令执行的过程,实质上就是发出控制信号、依次执行一个微操作序列的过程。很明显,不同的指令中包含的微操作数量不等,每个微操作的复杂程度也不同,所以每条指令的执行时间都是不同的。在 CPU 内,可以通过时钟信号产生节拍,来控制每个微操作的执行。一个指令周期可以包含多个机器周期,每个机器周期又可以包含多个节拍,这样就构成了。控制不同的微操作序列,需要产生不同的时序控制信号。至于如何形成这些控制信号,可以采用不同的时序控制方式,这就被称为 CU 的。
2024-05-22 16:57:47 1326
原创 计算机组成结构—数据通路和控制信号
计算机中,将各个功能部件连接起来、可以进行数据传送的路径称为。数据通路的主要功能,就是实现计算机中不同部件间的信息传送和数据交换。在这里我们主要讨论 CPU 内部的数据通路,
2024-05-21 20:58:17 2244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人