自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 flex-shrink计算上的一些细节

得到的比例为 1:1:6,所以超出的比例是按照 1:1:6的比例压缩的,容器宽度为 600,弹性项总宽度为 800,超出了 200,这 200 分成 1+1+6=8 份,每一份 25像素,1 号占一份,被压缩 25 像素,宽度为 200-25=175 像素,2 号占 1 份,被压缩 25 像素,也剩 175 像素,三号占 6 份,被压缩 150 像素,宽度为 400-150=250 像素。在上面的例子中,由于有 1 像素的边框,所以盒子内容区宽度的比值应该是 198:198:398,乘以对应的。

2024-01-24 11:44:10 418 1

原创 第五章:IO管理

IO 核心子系统是什么可以参照 [[#IO 软件的层次结构]],IO 层次中,中间三层,也就是设备独立性软件、设备驱动程序、中断处理程序就是 IO 核心子系统。我们本节主要介绍的是 IO 核心子系统需要提供的部分功能,如下IO 调度设备保护假脱机技术(SPOOLing 技术)设备的分配和回收缓冲区管理 (缓冲与高速缓存)上图给出了这五个功能分别要在哪一个层次实现,虽然假脱机技术并不属于 IO 核心子系统要提供的功能,但也放在本节介绍。

2023-11-17 02:21:59 113 1

原创 第四章:文件管理

索引分配允许文件离散地分配在各个磁盘块中,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块(索引表的功能类似于内存管理中的页表——建立逻辑页面到物理页之间的映射关系)。索引表存放的磁盘块称为索引块。文件数据存放的磁盘块称为数据块。链接方案:如果索引表太大,一个索引块装不下,那么可以将多个索引块链接起来存放。缺点:若文件很大,索引表很长,就需要将很多个索引块链接起来。想要找到 i 号索引块,必须先依次读入 0~i-1 号索引块,这就导致磁盘 I/O 次数过多,查找效率低下。

2023-11-17 02:21:34 195 1

原创 第三章:内存管理

先回顾一下一个程序的编写流程,首先我们要用 IDE 写出源代码,接着用编译程序将源代码编译为目标文件,接着还要进行链接,链接后的文件就是一个 exe 可执行文件,再双击就可以进行运行。这里有几个连接点,首先是源代码编译为目标文件,这个过程其实就是编译器将我们写的高级语言代码翻译为机器语言的过程,本课程并不涉及。

2023-11-17 02:19:51 83 1

原创 第六章:图

图的基本概念我们可以这样定义一个图:图G由两个集合构成,分别是顶点集V和边集E,我们一般记为G=(V,E)G=(V,E)G=(V,E),其中顶点集包含了一个或多个顶点,边集则包含了零条或多条边。这里要注意的是,图的顶点集至少应该包含一个顶点,所以顶点集不能为空集,但边集允许为空,还需要注意的是,边集里面保存的边是两个顶点之间的边,所以我们可以采用无序对或者有序对来表示它,如果这个边是有顺序的,我们采用有序对,如果没有顺序,采用无序对。由此定义可知,顶点集的个数也就是顶点的个数,我们可以用|V|表示,

2023-10-21 18:48:18 111 2

原创 第五章:树与二叉树

树的基本概念树是一种新的数据结构,我们可以用前面学到的前驱和后继的关系来理解他,对于树来说除了第一个节点以外,其余节点都只有一个前驱,每一个节点都可能有0个或多个后继,这就是树,其实用一张图更好理解这就是一棵树,我们把上面的认为是前驱,下面的认为是后继,B,C,D都拥有同一个前驱A,B后面又拥有E和F两个后继。接下来抛出一些概念空树:一个节点也没有的树就是空树,可以参考前面的空表来理解非空树:不是空树的树都是非空树,非空树至少有一个节点父节点:就是我们前面说的前驱节点,上图B就是E和F的父节

2023-10-05 14:32:27 47

原创 根据先序序列和中序序列构造二叉树

左子树和右子树为空的情况我们讨论完了,接下来考虑左右子树不为空的情况,如果左子树不为空,那么左子树的中序序列就是图中蓝色的部分,下标范围为[l2,i-1],而左子树的先序序列可以看到图中先序序列的蓝色部分,也就是[l1+1,l1+Llen],我们将其作为参数递归调用自身,就可以递归创建左子树。黄色为根节点,我用i去指向中序队列中的根节点,此时i左边的元素均为左子树上的元素,i右边的元素均为右子树上的元素。简而言之,pre,in为两个序列,l1,r1为pre数组的边界符,l2,r2为in数组的边界符。

2023-10-04 07:13:20 1174 1

原创 四舍五入为什么“不科学“

接下来回答如何解决这个问题,由于0.5我们是无法用其他数字将他的误差抵消掉的,所以我们就考虑把0.5分为两种情况,一种情况舍去,一种情况进位,这两种情况出现的概率均为50%,这样就可以让舍去的那部分抵消掉进位的那部分误差,所以就有了五成双的规则,很显然,当要舍去位为5时,他的前一位要么是偶数,要么是奇数,这两种情况的概率均为50%,所以当前面的位数为奇数,就进位,此时会将整体数值估计大,而当前面的数为偶数,就会舍去,此时又会将整体数值估计小,这二者可以相互抵消,也就消除了误差。我们以下面这组数据为例。

2023-09-29 17:28:02 238 1

原创 导数极限定理

在以前有一个问题一直困扰着我,对于分段函数的导函数是否可以用两侧导函数的极限去求,我曾长期认为我这种想法没有问题,并且对于高中时期的题目我也一直这么干,也没错过,但我从未求证过,直到看到了导数极限定理才解开了我的疑惑。以下先给出两侧导数的定义fx在x0​limΔx→0​ΔxΔy​limΔx→0​Δxfx0​Δx−fx0​​0Δxδfx在x0​limΔx→0−​ΔxΔy​limΔx→。

2023-09-29 12:11:01 344 1

原创 第二章:进程管理

进程与线程进程的概念,组成,特征在学习进程管理之前,我们肯定需要了解一下进程的概念,进程非常容易与程序混淆,这里有必要对这两个概念进行辨析首先来说程序,程序是一组计算机能识别和执行的指令,即程序是指令的集合,而进程则不一样,进程是程序的一次运行过程,说个更具体的例子,一个存放在硬盘里面的可执行文件就是一个程序,而打开任务管理器看到的那些就是进程,如下图所示这里要注意,一个进程是程序的一次执行过程,换言之,同一个进程如果执行了两次那么就会产生两个不同的进程,至此就区分了进程和程序的区别。这里还有一

2023-09-28 17:08:41 193

原创 第一章:绪论

这里就引入数据结构的概念:**数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

2023-09-27 10:42:37 37

原创 第二章:线性表

在上一节中提到过,我们研究一种数据结构,应该关注数据结构的三要素,即逻辑结构,物理结构,运算,三个方面,本节围绕逻辑结构和运算两个方面来展开。线性表顾名思义就是一个线性的表,所谓线性就是被穿到一起,数据元素之间存在一个前后关系,如下图所示线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用命名线性表,则其一般表示为La1a2⋯aiai1⋯anLa1​a2​⋯ai​ai1​⋯an。

2023-09-27 10:42:01 71

原创 第三章:栈、队列和数组

以上代码就是一个顺序栈的结构体定义,难度不算大,初始化也只需要修改top的值即可,但是这里要稍加注意,top可以让他指向两个位置,第一个位置是直接指向栈顶元素,第二个位置是指向栈顶元素的下一个位置,如果我要让他直接指向栈顶元素,那么初始化时就应该设为-1,如果要让他指向栈顶元素的下一个位置,那就应该初始化为0,这个没有硬性要求,全凭自己喜好,我们这里让他指向-1的位置,这里给出栈的初始化以及判空操作。

2023-09-27 10:41:06 35

原创 第一章:计算机系统概述

在学习操作系统之前,我们需要了解什么是操作系统,首先,我们来研究一下一个电脑是怎么诞生得的,首先,厂家会将很多硬件组装起来,此时这种只有硬件的东西只能叫裸机,在裸机的基础上,厂家一般还会给我们安装一个操作系统,比如windows,当我们拿到电脑时,我们就可以在操作系统上安装一些应用程序,我们就可以来使用这些应用程序,当然,我们也可以直接去操作操作系统,至此,我们可以得出计算机系统的层次结构:操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调。

2023-09-27 10:40:13 66

原创 第四章:串

串就是字符串,是由零个或多个字符组成的一个有序序列例如"sagdsfadsfa",这就是一个串字符串中的字符个数就称为字符串的长度,长度为0的字符串我们称之为空串,可以用空集(∅\emptyset∅接下里介绍几个基本概念子串:传中任意个连续字符构成的子序列。例如:"s a Str"就是"This is a String"的子串主串:与子串相对应,A是B的子串,那么B是A的主串。字符在字符串中的位置:顾名思义,需要注意这里表示的是位序,从1开始。

2023-09-27 10:37:53 33

原创 KMP算法

现在我们直到,主串中3号字符并不是a,而j应该回溯到的位置,也就是next[3]为1,我们发现模式串种第一个字符正好又是a,同样是a,既然3号字符匹配不上,那么1号字符也一定匹配不上,这是已经注定的,既然1号字符匹配不上,就会让他跳转到next[1]位置上去,既然3号字符匹配不上的1号字符也一定匹配不上,那回溯到1号字符似乎就是一个多余的操作,我们不如直接让3号字符回溯到下一个位置,也就是next[1]的位置,即0号位置,这就是KMP算法的改进思路,这种改进的next数组,我们称为nextval数组。

2023-09-27 10:20:52 44

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除