 Get off my thread: Techniques for moving k to background threads0 码力 | 90 页 | 6.97 MB | 6 月前3 Get off my thread: Techniques for moving k to background threads0 码力 | 90 页 | 6.97 MB | 6 月前3
 使用 PlantUML 绘制 UML - PlantUML 语言参考指引(Version 1.2023.11)11) 19 / 538 1.25 生命线的激活与撤销 1 序列图 Bob --> Alice: ok ||45|| Alice -> Bob: message 3 Bob --> Alice: ok @enduml 1.25 生命线的激活与撤销 关键字 activate 和 deactivate 用来表示参与者的生命活动。 一旦参与者被激活,它的生命线就会显示出来。 activate 和 和 deactivate 适用于以上情形。 destroy 表示一个参与者的生命线的终结。 @startuml participant User User -> A: DoWork activate A A -> B: << createRequest >> activate B B -> C: DoWork activate C C --> B: WorkDone destroy C B -> User: Done deactivate A @enduml PlantUML 语言参考指引 (1.2023.11) 20 / 538 1.25 生命线的激活与撤销 1 序列图 还可以使用嵌套的生命线,并且运行给生命线添加颜色。 @startuml participant User User -> A: DoWork activate A #FFBBBB A -> A: Internal0 码力 | 539 页 | 7.74 MB | 1 年前3 使用 PlantUML 绘制 UML - PlantUML 语言参考指引(Version 1.2023.11)11) 19 / 538 1.25 生命线的激活与撤销 1 序列图 Bob --> Alice: ok ||45|| Alice -> Bob: message 3 Bob --> Alice: ok @enduml 1.25 生命线的激活与撤销 关键字 activate 和 deactivate 用来表示参与者的生命活动。 一旦参与者被激活,它的生命线就会显示出来。 activate 和 和 deactivate 适用于以上情形。 destroy 表示一个参与者的生命线的终结。 @startuml participant User User -> A: DoWork activate A A -> B: << createRequest >> activate B B -> C: DoWork activate C C --> B: WorkDone destroy C B -> User: Done deactivate A @enduml PlantUML 语言参考指引 (1.2023.11) 20 / 538 1.25 生命线的激活与撤销 1 序列图 还可以使用嵌套的生命线,并且运行给生命线添加颜色。 @startuml participant User User -> A: DoWork activate A #FFBBBB A -> A: Internal0 码力 | 539 页 | 7.74 MB | 1 年前3
 Hello 算法 1.0.0b4 Golang版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 347 页 | 27.40 MB | 1 年前3 Hello 算法 1.0.0b4 Golang版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 347 页 | 27.40 MB | 1 年前3
 2022年美团技术年货 合辑通过将样本匹配建模成最佳传输问题,求得全局信息下的最佳样本匹 配策略以提升精度,但 OTA 由于使用了 Sinkhorn-Knopp 算法导致训练时间加长, 而 SimOTA[4] 算法使用 Top-K 近似策略来得到样本最佳匹配,大大加快了训练速 度。故 YOLOv6 采用了 SimOTA 动态分配策略,并结合无锚范式,在 nano 尺寸 模型上平均检测精度提升 1.3% AP。 SIoU 边界框回归损失 考虑,裁剪掉没用的特征,同时标识重要特征与其他特征再次进行更为高阶的 组合。 ● 高阶特征算子:基于一、二阶特征算子组合构建的新特征,进一步与其他特征 54 > 2022年美团技术年货 进行高阶组合,基于 K 阶(K>=1)的 K+1 高阶组合循环迭代,能够产出大量 人为考虑不足的高阶特征。 高阶特征算子按多实体结果是否完全匹配,分为 Match 方式——匹配全部实体,All 方式——匹配部分实体,得到另一实 一般在非时序问题,采用 N-fold 方法构造多个验证集,并可以灵活变换生成种子, 得到不同的集合。而在时序问题,一般会采用滑窗方式,构造同线上提交时间一致的 验证集,并可以向前滑动 k 天,来构造 k 个验证集。在多个验证集评估中,可以参考 均值,方差,极值等参考指标综合评估,得到同线上一致的结果。 关键性建模:比赛中期,会就关键问题进行深挖,达成方案在榜单 Top 行列,在问题 理0 码力 | 1356 页 | 45.90 MB | 1 年前3 2022年美团技术年货 合辑通过将样本匹配建模成最佳传输问题,求得全局信息下的最佳样本匹 配策略以提升精度,但 OTA 由于使用了 Sinkhorn-Knopp 算法导致训练时间加长, 而 SimOTA[4] 算法使用 Top-K 近似策略来得到样本最佳匹配,大大加快了训练速 度。故 YOLOv6 采用了 SimOTA 动态分配策略,并结合无锚范式,在 nano 尺寸 模型上平均检测精度提升 1.3% AP。 SIoU 边界框回归损失 考虑,裁剪掉没用的特征,同时标识重要特征与其他特征再次进行更为高阶的 组合。 ● 高阶特征算子:基于一、二阶特征算子组合构建的新特征,进一步与其他特征 54 > 2022年美团技术年货 进行高阶组合,基于 K 阶(K>=1)的 K+1 高阶组合循环迭代,能够产出大量 人为考虑不足的高阶特征。 高阶特征算子按多实体结果是否完全匹配,分为 Match 方式——匹配全部实体,All 方式——匹配部分实体,得到另一实 一般在非时序问题,采用 N-fold 方法构造多个验证集,并可以灵活变换生成种子, 得到不同的集合。而在时序问题,一般会采用滑窗方式,构造同线上提交时间一致的 验证集,并可以向前滑动 k 天,来构造 k 个验证集。在多个验证集评估中,可以参考 均值,方差,极值等参考指标综合评估,得到同线上一致的结果。 关键性建模:比赛中期,会就关键问题进行深挖,达成方案在榜单 Top 行列,在问题 理0 码力 | 1356 页 | 45.90 MB | 1 年前3
 Hello 算法 1.0.0b5 Golang版2 建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 8.3 Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 8.4 小结 . . . . 、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照顺序依次排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构成, 反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可被分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3 Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1 方法一:遍历选择 我们可以进行图0 码力 | 379 页 | 30.70 MB | 1 年前3 Hello 算法 1.0.0b5 Golang版2 建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 8.3 Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 8.4 小结 . . . . 、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照顺序依次排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构成, 反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可被分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3 Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1 方法一:遍历选择 我们可以进行图0 码力 | 379 页 | 30.70 MB | 1 年前3
 Hello 算法 1.0.0b4 Java版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 342 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 Java版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 342 页 | 27.39 MB | 1 年前3
 Hello 算法 1.0.0b4 C#版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 341 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 C#版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 341 页 | 27.39 MB | 1 年前3
 Hello 算法 1.0.0b4 Python版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8. 堆 hello‑algo.com 151 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 329 页 | 27.34 MB | 1 年前3 Hello 算法 1.0.0b4 Python版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8. 堆 hello‑algo.com 151 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 329 页 | 27.34 MB | 1 年前3
 Hello 算法 1.0.0b4 C++版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 343 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 C++版建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 8.3. Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 8.4. 小结 . . . . 线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构 成,反映了复杂的网络关系。 逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3. Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1. 方法一:遍历选择 我们可以进行0 码力 | 343 页 | 27.39 MB | 1 年前3
 Hello 算法 1.0.0b5 Java版2 建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 8.3 Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 8.4 小结 . . . . 、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照顺序依次排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构成, 反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可被分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3 Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1 方法一:遍历选择 我们可以进行图0 码力 | 376 页 | 30.69 MB | 1 年前3 Hello 算法 1.0.0b5 Java版2 建堆操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 8.3 Top‑K 问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 8.4 小结 . . . . 、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照顺序依次排列,体现了数据之间的线 性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构成, 反映了复杂的网络关系。 如图 3‑1 所示,逻辑结构可被分为“线性”和“非线性”两大类。线性结构比较直观,指数据在逻辑关系上 进一步地,高度为 ℎ 的完美二叉树的节点数量为 ? = 2ℎ+1 − 1 ,易得复杂度为 ?(2ℎ) = ?(?) 。以上推 算表明,输入列表并建堆的时间复杂度为 ?(?) ,非常高效。 8.3 Top‑K 问题 � 给定一个长度为 ? 无序数组 nums ,请返回数组中前 ? 大的元素。 对于该问题,我们先介绍两种思路比较直接的解法,再介绍效率更高的堆解法。 8.3.1 方法一:遍历选择 我们可以进行图0 码力 | 376 页 | 30.69 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100














 
  
 