408公式、结论、常量总结
根据26版王道书籍整理
数据结构
第1章、绪论
- O(1)常数阶<O(log2n)对数阶<O(n)线性阶<O(nlog2n)线性对数阶<O(n2)平方阶<O(n3)立方阶<O(2n)指数阶<O(n!)阶乘阶<O(nn)[1]
第3章、栈、队列和数组
- n个不同元素入栈时,出栈元素不同排列的个数为[2]
- 循环队列[3]
初始时:Q.front=Q.rear=0
队首指针进1:Q.front=(Q.front+1)%MaxSize
队尾指针进1:Q.rear=(Q.rear+1)%MaxSize
队列长度:(Q.rear+MaxSize-Q.front)%MaxSize
牺牲一个单元来区分队空还是队满
约定以“队首指针在队尾指针的下一位置作为队满的标志”
队满条件:(Q.rear+1)%MaxSize==Q.front
队空条件:Q.front==Q.rear
队列中元素的个数:(Q.rear-Q.front+MaxSize)%MaxSize
-
二维数组按行/列优先存储的下标对应关系[4]
设二维数组的行下标与列下标的范围分别为[0,h1]与[0,h2],每个数组元素所占存储单元为L
- 行优先存储结构关系式:LOC(ai,j)=LOC(a0,0)+[i×(h2+1)+j]×L
- 列优先存储结构关系式:LOC(ai,j)=LOC(a0,0)+[j×(h1+1)+i]×L
- 对称矩阵元素下标对应关系[5]
-
三角矩阵元素下标对应关系
-
下三角矩阵
-
上三角矩阵
-
-
三对角矩阵
ai,j(1≤i,j≤n,|i-j|≤1)在一维数组B中存放的下标k=2i+j-3
三对角矩阵某个元素ai,j存放在一维数组B第k个位置,则
第5章、树与二叉树
- 树的性质[6]
树的结点数n等于所有结点的度数k之和加1
度为m的树中第i层上至多有mi-1个结点(i≥1)
高度为h的m叉树至多有(mh-1)/(m-1)个结点
- 树结点与度之间关系[7]
总结点数=n0+n1+n2+…+nm
总分支数=1n1+2n2+…+mnm
总结点数=总分支树+1
- 二叉树
满二叉树:对于编号为i的结点,若有双亲,则其双亲为
若有左孩子,则左孩子为2i,若有右孩子,则右孩子为2i+1
非空二叉树上的叶结点数等于度为2的结点数加1,即n0=n2+1
结点i所在层次(深度)为
具有n个(n>0)结点的完全二叉树的高度为
- 含有n个结点的二叉链表中,含有n+1个空链域[8]
- 前序序列和后序序列不能唯一确定一棵二叉树,但可以确定二叉树中结点的祖先关系:当两个结点的前序序列为XY与后序序列为YX时,则X为Y的祖先[9]
- 如果是m叉哈夫曼树,需保证初始增加若干权值为0的结点,使得n-1是m-1的倍数[10]
- 构造哈夫曼树过程中共新建了n-1个结点(双分支结点),因此哈夫曼树的结点总数为2n-1
第6章、图
- 设图G的邻接矩阵为A,An的元素An[i][j]等于由顶点i到顶点j的长度为n的路径的数目[11]
-
关键路径[12]
-
事件vk的最早发生时间ve(k)
ve(源点)=0
ve(k)=Max{ve(j)+Weight(vj,vk)},vk为vj的任意后继,Weight(vj,vk)表示<vj,vk>上的权值
-
事件vk的最迟发生时间vl(k)
vl(汇点)=ve(汇点)
vl(k)=Min{vl(j)-Weight(vk,vj)},vk为vj的任意前驱
-
活动ai的最早开始时间e(i)=ve(k)
-
活动ai的最迟开始时间l(i)=vj(j)-Weight(vk,vj)
-
一个活动ai的最迟开始时间l(i)和其最早开始时间e(i)的差额d(i)=l(i)-e(i)
-
第7章、查找
- 设nh表示深度h的平衡二叉树中含有的最少结点数,则nh=nh-1+nh-2+1[13]
- 红黑树[14]
根结点黑高为h的红黑树内部结点数(关键字)至少(h层黑结点的满树形态)至少有2h-1个
从根到叶结点的最长路径不大于最短路径的2倍
有n个内部结点的红黑树高度h≤2log2(n+1)
- m阶B树:所有结点的平衡因子均等于0的m路平衡查找树[15]
根结点子树∈[2,m]、关键字数∈[1,m-1]
除根结点外的所有非叶结点子树∈
关键字数∈
- B树的高度
B树的高度不包括最后的不带任何信息的叶结点所处的那一层
若n≥1,对任意一棵包含n个关键字、高度为h、阶数为m的B树:
让每个结点中的关键字个数达到最多,则容纳同样多关键字的B树的高度达到最小,有h≥logm(n+1)
让每个结点中的关键字个数达到最少,则容纳同样多关键字的B树的高度达到最大,对于关键字个数为n的B树,叶结点即查找不成功的结点为n+1,有
- 在B+树中,每个结点(非根内部结点)的关键字个数n的范围是[16]
(非叶根结点:2≤n≤m);
而在B树中,每个结点(非根内部结点)的关键字个数n的范围是
(非叶根结点:1≤n≤m-1)
第8章、排序
- 最佳归并树添加长度为0的“虚段”[17]
设度为0的结点有n0个,度为k的结点有nk个,归并树的结点总数为n,有
n=nk+n0(总结点数=度为k的结点数+度为0的结点数)
n=knk+1(总结点数=所有结点的度数之和+1)
因此,对严格k叉树有n0=(k-1)nk+1,由此得nk=(n0-1)/(k-1)
若(n0-1)%(k-1)=0,则这n0个叶结点正好可以构造k叉归并树。此时内结点有nk个
若(n0-1)%(k-1)=u≠0,则对于这n0个叶结点有u个多余,不能包含在k叉归并树中,此时需要再加上k-u-1个空归并段才可以建立归并树
操作系统
第2章、进程与线程
- 管道文件是一个固定大小的缓冲区,在Linux中该缓冲区的大小为4KB[18]
- 调度的目标[19]
周转时间=作业完成时间-作业提交时间
平均周转时间=(作业1的周转时间+…+作业n的周转时间)/n
平均带权周转时间=(作业1的带权周转时间+…+作业n的带权周转时间)/n
- 实现临界区互斥必须遵循的准则[20]
空闲让进、忙则等待、有限等待、让权等待
前V后P
实现互斥的P操作一定要在实现同步的P操作之后
- 死锁[21]
为避免死锁,系统至少提供的资源量满足:A≥P×(M-1)+1
A:系统至少提供的资源量
P:进程数量
M:每个进程最大需求量
- 银行家算法
Need=Max-Allocation
尝试将资源分配给P后修改下面的值:
Available=Available-Request
Allocation[i,j]=Allocation[i,j]+Request[i,j]
Need[i,j]=Need[i,j]-Request[i,j]
第4章、文件管理
- 位示图法[22]
一个m×n组成的位示图
假设找到值为“0”的二进制位揣位示图的第i行、第j列,其对应的盘块号b=n(i-1)+j
回收的盘块号转换为位示图的行号和列号:i=(b-1)DIV n+1、j=(b-1)MOD n+1
第5章、输入/输出管理
- 缓冲区[23]
从设备将一块数据输入缓冲区的时间为T,操作系统将该缓冲区中的数据传送到工作区的时间为M,CPU对这一块数据进行处理的时间为C
单缓冲区中T可以和C并行,处理每块数据的平均时间为Max(C,T)+M
双缓冲区中C和M可以与T并行,处理每块数据的平均时间为Max(C+M,T)
- 磁盘[24]
磁盘地址用“柱面号·盘面号·扇区号”表示
寻道时间Ts:活动头磁盘在读/写信息前,将磁头移动到目的磁道所需的时间Ts=mn+s
每跨越一个磁道所需的时间为m,磁道数为n,启动磁头臂的时间为s
旋转延迟时间Tr:磁头定位到要读/写扇区所需的时间Tr=1/(2r)
磁盘旋转速度为r,找到目标扇区平均需要转半圈,所以为1/2
传输时间Tt:从磁盘读出或向磁盘写入数据所需的时间Tt=b/(rN)
每次所读/写的字节数为b,磁盘每秒转数为r,一个磁道上的字节数为N,b字节的数据需b/N个磁道
总平均存取时间Ta:Ta=Ts+1/(2r)+b/(rN)
计算机网络
第1章、计算机网络体系结构
-
计算机网络性能指标[25]
-
速率:b/s或bps、kb/s(k=103)、Mb/s(M=106)、Gb/s(G=109)
-
带宽(最高数据传输速率):b/s
-
时延:发送时延、传播时延、处理时延、排队时延
考试中通常不考虑处理时延和排队时延
-
发送时延(传输时延):发送时延=分组长度/发送速率(带宽)
传输时延是节点将分组推向网络所需的时间
-
传播时延:传播时延=信道长度/电磁波在信道上的传播速率
传播时延是一个比特从一个节点传播至另一节点所需的时间
-
时延带宽积:时延带宽积=传播时延×信道带宽
指发送端发送的第一个比特即将到达终点时,发送端已发出了多少比特,也称以比特为单位的链路长度
-
-
往返时延(RTT):不包括发送方的发送时延
-
信道利用率:信道利用率=有数据通过的时间/(有数据通过的时间+无数据通过的时间)
-
- 传输m个分组所需时间t=2r+(m-1)r、链路带宽串行相加,并行取最小[26]
一条由多段链路组成的信道,其带宽(最大数据传输速率)取决于带宽最小的那段链路
- 计算机网络分层结构
协议数据单元(PDU):各层PDU都分为服务数据单元和协议控制信息两部分
服务数据单元(SDU)
协议控制信息(PCI)
n-SDU+n-PCI=n-PDU=(n-1)-SDU
- OSI参考模型[27]
物理层(比特Bit)
数据链路层(帧Frame):差错控制、流量控制
网络层(数据报Packet):路由选择、分组转发、拥塞控制、网际互联、差错控制、流量控制、连接建立与释放、可靠传输管理(TCP/IP的网络层没有后四个功能)
传输层(报文段Segment):差错控制、流量控制、连接建立与释放、可靠传输
数据链路层提供的是点到点通信,传输层提供的是端到端通信,两者不同
会话层
表示层:数据格式转换
应用层(报文Message)
- TCP/IP模型[28]
网络接口层:功能类似于OSI参考模型的物理层和数据链路层
网际层:路由选择、分组转发、拥塞控制、网际互联
传输层:传输控制协议TCP——报文段Segment;用户数据报协议UDP——用户数据报
应用层
OSI模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信
TCP/IP参考模型在网际层仅有一种无连接的通信模式,但传输层支持无连接和面向连接两种模式
第2章、物理层
- 码元:1T内出现K种信号,则
- 码元传输速率(波特率/调制速率):Baud波特[29]
若一个码元携带n比特的信息量,则波特率M Baud对应的比特率是Mn b/s
- 奈奎斯特定理
在理想低通(没有噪声、带宽有限)信道中
极限码元传输速率为2W波特,其中W是信道的频率带宽(Hz),若用V表示每个码元的离散电平数量(码元的离散电平数量是指有多少种不同的码元),则极限数据传输速率为
理想低通信道的极限数据传输速率=2Wlog2V(单位为b/s)
- 香农定理
带宽受限且有高斯噪声干扰的信道的极限数据传输速率
信道的极限数据传输速率=Wlog2(1+S/N)(单位为b/s)
W:信道的频率带宽(Hz)
S:信道内传输信号的平均功率
N:信道内的高斯噪声功率
S/N为信噪比
当采用分贝记法时,信噪比=10log10(S/N)(单位为dB)
若给出了码元与比特数之间的关系,则需受两个公式的共同限制
- 数字数据编码[30]
非归零编码:低0高1中不变
归零编码:低0高1中归零
反向非归零编码:跳0不跳1看起点,中不变(遇0则变,中不变)
曼彻斯特编码:跳0反跳1看中间,中必变(上0下1)
差分曼彻斯特编码:跳0不跳1看起点,中必变(遇0不变,遇1翻转)
标准以太网使用曼彻斯特编码、宽带高速网使用差分曼彻斯特编码
- 正交幅度调制(QAM)[31]
设波特率为B,采用m个相位,每个相位有n种振幅,则QAM的数据传输速率R=Blog2(mn)
-
中继器:仅支持半双工通信[32]
-
集线器:物理上是星型拓扑,逻辑上是总线型拓扑
集线器的N个端口对应N个网段,哥网段属于同一个“冲突域”
集线器既不隔离广播域,又不隔离冲突域P211
交换机不隔离广播域,但隔离冲突域
第3章、数据链路层
- 海明码位数[33]
n为有限信息的位数,k为检验位的位数,则信息位n和检验位k应满足n+k≤2k-1
CRC检验码的位数等于生成多项式G(x)的最高次数
-
滑动窗口机制[34]
-
停止-等待协议(S-W):发送窗口WT=1,接收窗口WR=1
-
后退N帧协议(GBN):发送窗口WT>1,接收窗口WR=1
-
选择重传协议:发送窗口WT>1,接收窗口WR>1
若采用n比特对帧编号,则后两种滑动窗口协议还需满足WT+WR≤2n
-
多帧滑动窗口与选择重传协议(SR):WR≤WT;WT+WR≤2n
-
-
信道利用率分析
发送方发送分组的发送时延为TD(TD等于分组长度除以数据传输速率)
接收方发送确认分组的发送时延为TA
-
停止-等待协议(S-W):
-
连续ARQ协议(采用流水线传输):
nTD<TD+RTT+TA(在一个发送周期内可以发送完n个分组):
nT≥TD+RTT+TA(在一个发送周期内发不完(或刚好发完)n个分组):U =1
-
信道平均(实际)数据传输速率=信道利用率×信道带宽(最大数据传输速率)
信道平均(实际)数据传输速率=发送周期内发送的数据量/发送周期
- 码分多址(CDMA)[35]
向量S表示A站的码片向量,T表示B站的码片向量
不同站的码片序列相互正交,即向量S和T的规格化内积为0
任何站的码片向量和该码片向量自身的规格化内积都是1
任何站的码片向量和该码片反码的向量的规格化内积都是-1
两个向量在公共信道上叠加,实际上是线性叠加
- CSMA/CD协议[36]
载波监听多路访问/冲突检测,适用于总线形网络或半双工网络
先听后发、边听边发、冲突停发、随机重发
最短帧长=最大单向传播时延×数据传输速率×2
以太网规定最短帧长为64B,最长帧长为1518B,帧间最小间隔为9.6μs
- 截断二进制指数退避算法
- 确定基本退避时间2τ(争用期)
- 从离散的整数集合[0,1,…,(2k-1)]中随机取一个数记为r,重传所需推迟时间为2rτ,参数k=min[重传次数,10]
- 当重传达16次仍不成功时抛弃该帧并向高层报错
- CSMA/CA协议
先听后发、忙则退避
- 信道预约[37]
802.11标准允许发送站对信道进行预约
源站在RTS帧中填写的所需占用信道的持续时间,是从收到RTS帧后到目的站最后发送完ACK帧为止的时间,即“SIFS+CTS+SIFS+数据帧+SIFS+ACK”
AP在CTS帧中填写的所需占用信道的持续时间,是从收到CTS帧后到目的站最后发送完ACK帧为止的时间,即“SIFS+数据帧+SIFS+ACK”
- 以太网MAC帧[38]
首部和尾部为18B,662N4,收发协数验,N是46~1500
- 802.11局域网的数据帧格式[39]
30 N 4首数验,首部3+1地址
九十比特表去来,帧的中转靠AP
去往AP中起止,来自AP止中起
地址1和地址2分别是无线通信中信道两端的接收地址和发送地址
当主机发往AP时,接收地址不是实际的目的地址,因此用地址3来存放实际的目的地址
当AP发往主机时,发送地址不是实际的源地址,因此用地址3来存放实际的源地址
- 802.1Q帧[40]
6642N4,收发V协数验
在干线链路上传送的帧是802.1Q帧
- 设备隔离冲突域和广播域的总结[41]
| 设备 | 能否隔离冲突域 | 能否隔离广播域 |
|---|---|---|
| 集线器 | 不能 | 不能 |
| 中继器 | 不能 | 不能 |
| 交换机 | 能 | 不能 |
| 网桥 | 能 | 不能 |
| 路由器 | 能 | 能 |
第4章、网络层
- IP数据报格式[42]
首部长度为20-60B,418,首总偏
(首部长度,总长度,片偏移)以4B为单位
IP首部前两个字节往往以0x45开头
以太网帧的最大传送单元(MTU)为1500B
许多广域网的MTU不超过576B
片偏移除了最后一个分片外,每个分片的长度一定是8B的整数倍(课后67题)
- 特殊IP地址用途[43]
| IP地址 | 是否可作为源地址 | 是否可作为目的地址 |
|---|---|---|
| 主机号全为0 | × | × |
| 主机号全为1 | × | √ |
| 127.x.x.x | √ | √ |
| 0.0.0.0 | √ | × |
| 255.255.255.255 | × | √ |
| 网络号为0,主机号为Y 本网络中主机号为Y的主机 |
√ | × |
-
最佳前缀匹配(最佳匹配):应当从匹配结果中选择具有最长网络前缀的路由
-
ARP工作在网络层、NAT路由器工作在传输层
-
DHCP是应用层协议,它基于UDP;RIP是应用层协议,使用UDP传送数据;OSPF是网络层协议,直接用IP数据报传送
-
MAC地址会随着数据发往不同的网络而改变,IP地址当且仅当数据在私有网络与外部网络传递时才会改变(课后64题)[44]
- IPv6将地址从IPv4的32位增大到128位,只有源主机才能分片,是端到端的,不允许类似IPv4在中间路由器进行分片[45]
第5章、传输层
- UDP首部:8B[46]
- UDP一次发送一个报文,既不合并,又不拆分
- 计算检验和时,UDP数据报前添加12B的伪首部(IP数据报检验和只检验IP数据报的首部,UDP的检验和要将首部和数据部分一起检验),最高位产生了进位要回卷
- TCP首部:20B-60B、数据偏移以×4B为单位
- seq表示发送的报文段中数据部分的第一个字节在A的发送缓存区中的编号,ack表示A期望收到的下一个报文段的数据部分的第一个字节在B的发送缓存区中的编号
- 只有握手①的ACK=0;握手①②的SYN=1,其他所有TCP的报文段都是0;挥手①③的FIN=1[47]
- 握手①②不能携带数据;握手③如果不携带数据就不消耗序号;握手①②固定消耗一个序号
- 挥手①③即使不携带数据也要消耗一个序号;挥手②可以携带数据;挥手④不可以携带数据
- 发送窗口上限值=min[rwnd,cwnd][48]
- ssthresh不能小于2
- TCP连接建立和网络出现超时时,采用慢开始和拥塞避免算法(ssthresh=cwnd/2,cwnd=1)
- 发送方收到3个冗余ACK时,采用快重传和快恢复算法(ssthresh=cwnd/2,cwnd=ssthresh)
第6章、应用层
-
DNS协议运行在UDP上,53号端口;根域名、顶级域名、二级域名
-
FTP协议运行在TCP上,21号控制端口,20号数据端口,做题默认采用主动模式PORT(S主动向C发起连接)(C连接到S的21号端口,要读取数据时C随机开放一个端口并告知S,S通过20号端口和C连接并发送数据)
-
SMTP用Push的通信方式,POP3用Pull的通信方式;SMTP协议运行在TCP上,25号端口,POP3协议运行在TCP上,110号端口
-
假设请求n-1个文件,加上Web请求共n个请求
非持久连接:2n×RTT;持久连接、非流水线:(n+1)×RTT;持久连接、流水线:1×RTT
如果题目中出现MSS字样需考虑TCP中的拥塞控制
计算机组成原理
第1章、
P6 ↩︎
P63 ↩︎
P77 ↩︎
P101 ↩︎
P102 ↩︎
P126 ↩︎
P130 ↩︎
P133 ↩︎
P159 ↩︎
P184 ↩︎
P207 ↩︎
P240 ↩︎
P290 ↩︎
P291 ↩︎
P311 ↩︎
P314 ↩︎
P391 ↩︎
P43 ↩︎
P69 ↩︎
P99、107 ↩︎
P152 ↩︎
P298 ↩︎
P320 ↩︎
P340 ↩︎
P6 ↩︎
P9 ↩︎
P16 ↩︎
P19 ↩︎
P31 ↩︎
P33 ↩︎
P35 ↩︎
P46 ↩︎
P59 ↩︎
P63 ↩︎
P80 ↩︎
P84 ↩︎
P86 ↩︎
P102 ↩︎
P105 ↩︎
P105 ↩︎
P125 ↩︎
P137 ↩︎
P139 ↩︎
P147-P150 ↩︎
P179 ↩︎
P226 ↩︎
P234 ↩︎
P240 ↩︎