数据结构-期末复习(一)

黄色标黄的是答案,蓝色是自己做的,绿色的是没记住的

二分查找

当n是偶数时,在两个中我们要选择前面那一个

当n是奇数时,(2+3)/2=2

对n个元素进行二分查找,最大比较次数为:⌊ l o g 2 n ⌋ + 1 

 

子串

KMP——串的简单模式匹配算法

真子串的个数

串的序号是从1开始的

 

哈夫曼树

哈夫曼树不一定是完全二叉树。哈夫曼树是带权路径长度达到最小的二叉树,也叫做最优二叉树,不一定是完全二叉树,也不一定是平衡二叉树

哈夫曼树的结点个数为m, 则其叶子结点个数为(m+1)/2,分支结点个数为(m-1)/2

树的带权路径长度:树中所有叶子结点的带权路径长度之和

结点的带权路径长度为结点到根节点之间的路径长度与该节点上权的乘积.

 

(1)堆是一颗完全二叉树;

(2)堆中某个节点的值总是不大于(或不小于)其父节点的值。

根节点最大的堆叫做大顶堆,根节点最小的堆叫做小顶堆

 

完全二叉树

如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被称为完全二叉树。

在完全二叉树中,具有n个结点的完全二叉树深度为(log2n)+1,其中(log2n)+1是向下取整。

 

矩阵压缩

 

快速排序

 

 

插入排序

稳定

希尔排序(Shell排序)

 

不稳定

 

选择排序

不稳定。例如5 8 5 2 9

 

冒泡排序

稳定

 

归并排序

稳定

 

堆排序

迪杰斯特拉算法

 

边的个数

子图

子图G’中所有的顶点和边均包含于原图G。即E’∈E,并且V’∈V。

生成子图

生成子图G’中顶点个数V’必须和原图G中V的数量相同,而E’∈E即可。

导出子图

导出子图G’,V’∈V,但对于V’中任一顶点,只要在原图G中有对应边,那么就要出现在E’中

举例

连通图

图中任意两个顶点都是连通的

 

极小连通子图

  • 极小连通子图为图的某一个顶点子集所确定的连通子图中,包含边最少且包含全部顶点的连通子图。

生成树

包含图中全部顶点的一个极小连通子图

邻接矩阵

 

 

邻接表法

 

深度优先搜索(DFS)

广度优先搜索(BFS)

 

 

Prim算法

Kruskal算法

 

拓扑排序

 

关键路径

 

 

Substr函数

 

 循环队列

 

散列查找(哈希查找)

排序算法的稳定性

稳定性概念:能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同

堆排序快速排序希尔排序直接选择排序是不稳定的排序算法,而冒泡排序直接插入排序折半插入排序归并排序是稳定的排序算法。

 

BST(二叉搜索树、二叉排序树、二叉查找树)

创建

添加

删除

哈夫曼树

出栈个数

进栈出栈

 

 

 共享栈

 

队列

 

 

 

### RT-DETRv3 网络结构分析 RT-DETRv3 是种基于 Transformer 的实时端到端目标检测算法,其核心在于通过引入分层密集正监督方法以及系列创新性的训练策略,解决了传统 DETR 模型收敛慢和解码器训练不足的问题。以下是 RT-DETRv3 的主要网络结构特点: #### 1. **基于 CNN 的辅助分支** 为了增强编码器的特征表示能力,RT-DETRv3 引入了个基于卷积神经网络 (CNN) 的辅助分支[^3]。这分支提供了密集的监督信号,能够与原始解码器协同工作,从而提升整体性能。 ```python class AuxiliaryBranch(nn.Module): def __init__(self, in_channels, out_channels): super(AuxiliaryBranch, self).__init__() self.conv = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) self.bn = nn.BatchNorm2d(out_channels) def forward(self, x): return F.relu(self.bn(self.conv(x))) ``` 此部分的设计灵感来源于传统的 CNN 架构,例如 YOLO 系列中的 CSPNet 和 PAN 结构[^2],这些技术被用来优化特征提取效率并减少计算开销。 --- #### 2. **自注意力扰动学习策略** 为解决解码器训练不足的问题,RT-DETRv3 提出了种名为 *self-att 扰动* 的新学习策略。这种策略通过对多个查询组中阳性样本的标签分配进行多样化处理,有效增加了阳例的数量,进而提高了模型的学习能力和泛化性能。 具体实现方式是在训练过程中动态调整注意力权重分布,确保更多的高质量查询可以与真实标注 (Ground Truth) 进行匹配。 --- #### 3. **共享权重解编码器分支** 除了上述改进外,RT-DETRv3 还引入了个共享权重的解编码器分支,专门用于提供密集的正向监督信号。这设计不仅简化了模型架构,还显著降低了参数量和推理时间,使其更适合实时应用需求。 ```python class SharedDecoderEncoder(nn.Module): def __init__(self, d_model, nhead, num_layers): super(SharedDecoderEncoder, self).__init__() decoder_layer = nn.TransformerDecoderLayer(d_model=d_model, nhead=nhead) self.decoder = nn.TransformerDecoder(decoder_layer, num_layers=num_layers) def forward(self, tgt, memory): return self.decoder(tgt=tgt, memory=memory) ``` 通过这种方式,RT-DETRv3 实现了高效的目标检测流程,在保持高精度的同时大幅缩短了推理延迟。 --- #### 4. **与其他模型的关系** 值得提的是,RT-DETRv3 并未完全抛弃经典的 CNN 技术,而是将其与 Transformer 结合起来形成混合架构[^4]。例如,它采用了 YOLO 系列中的 RepNCSP 模块替代冗余的多尺度自注意力层,从而减少了不必要的计算负担。 此外,RT-DETRv3 还借鉴了 DETR 的匹配策略,并在此基础上进行了优化,进步提升了小目标检测的能力。 --- ### 总结 综上所述,RT-DETRv3 的网络结构主要包括以下几个关键组件:基于 CNN 的辅助分支、自注意力扰动学习策略、共享权重解编码器分支以及混合编码器设计。这些技术创新共同推动了实时目标检测领域的发展,使其在复杂场景下的表现更加出色。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值