数据结构与算法
数据结构与算法 排序算法时间复杂度分析:https://blog.csdn.net/qq_54693844/article/details/136658836?fromshare=blogdetail&sharetype=blogdetail&sharerId=136658836&sharerefer=PC&sharesource=a1150568956&sharefrom=from_link 排序算法 稳定性 时间复杂度 空间复杂度 特点 冒泡排序 ✅ 稳定 O(n²) O(1) 简单,适合小数据 插入排序 ✅ 稳定 O(n²) O(1) 数据基本有序时很快 归并排序 ✅ 稳定 O(n log n) O(n) 稳定高效的通用排序 计数排序 ✅ 稳定 O(n+k) O(k) 适合整数范围小 基数排序 ✅ 稳定 O(d(n+k)) O(n+k) 适合整数/字符串 桶排序 ⚠️ 取决于桶内 O(n)平均 O(n) 数据分布均匀时快 快速排序 ❌ 不稳定 O(n log n)平均 O(log n) 最常用的通...
深入理解分布式系统(二)分布式系统模型
分布式系统模型 2.1 两将军问题 “两将军问题”是一个经典的分布式系统问题,旨在研究在存在故障节点的情况下如何协调两个进程之间的通信。 问题场景是两个将军分别率领一支军队进攻敌方城市。两个将军之间必须达成一致,以确定进攻时间和策略。但是,将军们分别位于两个不同的营地,只能通过信使进行通信。此外,有可能存在恶劣的天气或其它因素干扰通信,或者其中一个将军的信使被敌人抓住并修改了消息。 该问题的关键是如何确保将军之间的通信可靠,并避免消息的丢失和篡改。经典的解决方案是使用拜占庭将军问题中的拜占庭容错算法,该算法可以容忍部分节点的故障和恶意攻击。 具体实现上,将军们需要达成共识,以决定进攻时间和策略。首先,每个将军向所有其他将军发送一个决策信息,并等待回复。如果将军收到的回复都是一致的,他就可以确定其他将军的决策,并做出相应的行动。如果将军收到的回复不一致,他会将这些信息再次发送给所有其他将军,直到收到一致的回复。 在该问题中,每个将军需要知道有多少其他将军参与协调,并且需要容忍其他将军的可能失败和恶意行为。这需要设计合适的算法和协议来保证将军之间的协作和共识。 总之,“两将军问题”是...
Longformer
0.参考文献 飞桨PaddlePaddle-源于产业实践的开源深度学习平台www.paddlepaddle.org.cn/?fr=paddleEdu_zhihu 飞桨一站式深度学习在线百科github.com/PaddlePaddle/awesome-DeepLearning/?fr=paddleEdu_zhihu Longformer: The Long-Document Transformerarxiv.org/pdf/2004.05150.pdf https://github.com/PaddlePaddle/PaddleNLPgithub.com/PaddlePaddle/PaddleNLP 1. Longformer的由来 目前基于Transformer的预训练模型在各项NLP任务纷纷取得更好的效果,这些成功的部分原因在于Self-Attention机制,它运行模型能够快速便捷地从整个文本序列中捕获重要信息。然而传统的Self-Attention机制的时空复杂度与文本的序列长度呈平方的关系,这在很大程度上限制了模型的输入不能太长,因此需要将过长的文档进行截断传入模型进行...


