Hello 算法 1.2.0 繁体中文 Go 版隱 藏著精妙的演算法思想。 同樣,資料結構無處不在:大到社會網絡,小到地鐵路線,許多系統都可以建模為“圖”;大到一個國家,小 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字典就像一個“雜湊表”,能夠快速查找目標詞條。 本書旨在透過清晰易懂的動畫圖解與可執行的程式碼範例,使讀者理解演算法和資料結構的核心概念,並能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 第 5 章 堆疊與佇列 90 5.1 堆疊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.2 . . . 170 目 錄 www.hello‑algo.com ii 第 8 章 堆積 172 8.1 堆積 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8.2 建堆積操作 . . . . . . . . . . . . . . . . . . . . .0 码力 | 385 页 | 18.80 MB | 10 月前3
Hello 算法 1.0.0b1 Golang版. . . . . . . . . . . . . . . . . 122 8. 堆 123 8.1. 堆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 8.2. 建堆操作 * . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。 在逻辑关系上是排 成一条线的;而如果数据之间的逻辑关系是非线性的(例如是网状或树状的),那么就是非线性数据结构。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表; ‧ 非线性数据结构:树、图、堆、哈希表; Figure 3‑3. 线性与非线性数据结构 3.2.2. 物理结构:连续与离散 � 若感到阅读困难,建议先看完下个章节「数组与链表」,再回过头来理解物理结构的含义。 3. 数据结构简介0 码力 | 190 页 | 14.71 MB | 1 年前3
Hello 算法 1.1.0 Go版. . . . . 170 目 录 hello‑algo.com ii 第 8 章 堆 172 8.1 堆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8.2 建堆操作 . . . . . . . . . . . . . . . . . . . . . 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。 第 0 它为数据的有序组织提供了蓝图,算法得以在此基础上生动起来。 第 3 章 数据结构 hello‑algo.com 52 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线0 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.0.0b2 Golang版. . . . . . . . . . . . . . . . . 125 8. 堆 126 8.1. 堆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 8.2. 建堆操作 * . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时 空效率、实现方法、示例题目等。 在逻辑关系上是排 成一条线的;而如果数据之间的逻辑关系是非线性的(例如是网状或树状的),那么就是非线性数据结构。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表; ‧ 非线性数据结构:树、图、堆、哈希表; Figure 3‑3. 线性与非线性数据结构 3.2.2. 物理结构:连续与离散 � 若感到阅读困难,建议先看完下个章节「数组与链表」,再回过头来理解物理结构的含义。 3. 数据结构简介0 码力 | 202 页 | 15.73 MB | 1 年前3
Hello 算法 1.0.0b4 Golang版. . . . . . . . . . . . 146 8. 堆 148 8.1. 堆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 目 录 hello‑algo.com ii 8.2. 建堆操作 . . . . . . . . . . . . . . . 复杂度分析:数据结构和算法的评价维度,算法效率的评估方法。时间复杂度、空间复杂度的推算方 法、常见类型、示例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、散列表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 示例题目等。 0. 性结构则相反,呈非线性排列。 ‧ 线性数据结构:数组、链表、栈、队列、哈希表。 ‧ 非线性数据结构:树、堆、图、哈希表。 Figure 3‑1. 线性与非线性数据结构 非线性数据结构可以进一步被划分为树形结构和网状结构。 ‧ 线性结构:数组、链表、队列、栈、哈希表,元素存在一对一的顺序关系。 ‧ 树形结构:树、堆、哈希表,元素存在一对多的关系。 ‧ 网状结构:图,元素存在多对多的关系。 3. 数据结构0 码力 | 347 页 | 27.40 MB | 1 年前3
Hello 算法 1.0.0 Golang版. . . . . 170 目 录 hello‑algo.com ii 第 8 章 堆 172 8.1 堆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8.2 建堆操作 . . . . . . . . . . . . . . . . . . . . . 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。 第 0 它为数据的有序组织提供了蓝图,算法得以在此基础上生动起来。 第 3 章 数据结构 hello‑algo.com 52 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线0 码力 | 382 页 | 17.60 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Go 版. . . 170 目 录 www.hello‑algo.com ii 第 8 章 堆 172 8.1 堆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 8.2 建堆操作 . . . . . . . . . . . . . . . . . . . . . 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。 第 0 它为数据的有序组织提供了蓝图,算法得以在此基础上生动起来。 第 3 章 数据结构 www.hello‑algo.com 52 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照一定顺序排列,体现了数据之间的线0 码力 | 384 页 | 18.49 MB | 10 月前3
Hello 算法 1.0.0b5 Golang版. . . . . 163 目 录 hello‑algo.com ii 第 8 章 堆 166 8.1 堆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 8.2 建堆操作 . . . . . . . . . . . . . . . . . . . . . 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度、空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 示例题目等。 第 0 它为数据的有序组织提供了蓝图,使算法得以在此基础上生动起来。 第 3 章 数据结构 hello‑algo.com 50 3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构” 两个维度进行分类。 3.1.1 逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照顺序依次排列,体现了数据之间的线0 码力 | 379 页 | 30.70 MB | 1 年前3
Go性能优化概览-曹春晖net/p/gonggongbanji/files/all/DF46 CPU 使⽤太⾼了-GC 使⽤ CPU 过⾼ https://github.com/glycerine/offheap • 可以将变化较少的结构放在堆外 • 通过 cgo 来管理内存 • 让 GC 发现不了这些对象 • 也就不会扫描了 Off heap 也可以减少 Go 进程的内存占⽤和内存使 ⽤波动,但要⽤到 cgo https://dgraph 1GB) 这种⽅式只适合那些内存不紧张,且希望提⾼整体吞吐量的服务 内存占⽤过⾼-堆分配导致内存过⾼ 实例分析,TLS 的 write buffer 瓶颈优化过程 https://github.com/golang/go/blob/master/src/crypto/tls/conn.go#L930 内存占⽤过⾼-堆分配导致内存过⾼ https://github.com/golang/go/p -> 使⽤ cityhash,murmurhash • 其它应⽤逻辑 -> case by case 分析了 • GC 使⽤ CPU 过⾼ • 减少堆上对象分配 • sync.Pool 进⾏堆对象重⽤ • Map -> slice • 指针 -> ⾮指针对象 • 多个⼩对象 -> 合并为⼀个⼤对象 • offheap • 降低 GC 频率 • 修改 GOGC • Make 全局⼤0 码力 | 40 页 | 8.69 MB | 1 年前3
2.2.1 深入Go ModuleGO111MODULE默 认为on • 又是一堆go命令 不兼容 • retract • -e • 禁止特殊import path Go 1.17 • Lazy module loading • // Deprecated: comment • 不包含go directive,默认 为go 1.11 • 又是一堆go命令 不兼容 认识 Go Module 第二部分0 码力 | 46 页 | 3.85 MB | 1 年前3
共 21 条
- 1
- 2
- 3













