Hello 算法 1.1.0 Go版建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例,使读者理解算法和数据结构的核心概念,并能够通 过编程来实现它们。在此基础上,本书致力于揭示算法在复杂世界中的生动体现,展现算法之美。希望本书 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 第 6 章 哈希表 112 6.1 哈希表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.2 哈希冲突 16.2 一起参与创作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 16.3 术语表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 1 第 0 章 前言0 码力 | 383 页 | 18.48 MB | 1 年前3
 Hello 算法 1.0.0 Golang版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 第 6 章 哈希表 112 6.1 哈希表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.2 哈希冲突 16.2 一起参与创作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 16.3 术语表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 1 第 0 章 前言 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。0 码力 | 382 页 | 17.60 MB | 1 年前3
 Hello 算法 1.0.0b5 Golang版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 第 6 章 哈希表 106 6.1 哈希表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.2 哈希冲突 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度、空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 示例题目等。 顺序排列的。假设我们需要 查找一个拼音首字母为 ? 的字,通常会按照图 1‑1 所示的方式实现。 1. 翻开字典约一半的页数,查看该页的首字母是什么,假设首字母为 ? 。 2. 由于在拼音字母表中 ? 位于 ? 之后,所以排除字典前半部分,查找范围缩小到后半部分。 3. 不断重复步骤 1. 和 步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 第 1 章 初识算法0 码力 | 379 页 | 30.70 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Go 版建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例,使读者理解算法和数据结构的核心概念,并能够通 过编程来实现它们。在此基础上,本书致力于揭示算法在复杂世界中的生动体现,展现算法之美。希望本书 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 第 6 章 哈希表 112 6.1 哈希表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.2 哈希冲突 16.2 一起参与创作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 16.3 术语表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 1 第 0 章 前言0 码力 | 384 页 | 18.49 MB | 10 月前3
 Hello 算法 1.2.0 繁体中文 Go 版建模為“圖”;大到一個國家,小 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字典就像一個“雜湊表”,能夠快速查找目標詞條。 本書旨在透過清晰易懂的動畫圖解與可執行的程式碼範例,使讀者理解演算法和資料結構的核心概念,並能 夠透過程式設計來實現它們。在此基礎上,本書致力於揭示演算法在複雜世界中的生動體現,展現演算法之 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 第 6 章 雜湊表 112 6.1 雜湊表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.2 雜湊衝突 16.2 一起參與創作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 16.3 術語表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 1 第 0 章 前言0 码力 | 385 页 | 18.80 MB | 10 月前3
 Hello 算法 1.0.0b4 Golang版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6. 散列表 91 6.1. 哈希表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 6.2. 哈希冲突 . . 字典是按照拼音的英文字母顺序排列的。假设我 们需要查找一个拼音首字母为 ? 的字,通常会这样操作: 1. 翻开字典约一半的页数,查看该页首字母是什么,假设首字母为 ? 。 2. 由于在英文字母表中 ? 位于 ? 之后,所以排除字典前半部分,查找范围缩小到后半部分。 3. 不断重复步骤 1‑2 ,直至找到拼音首字母为 ? 的页码为止。 1. 初识算法 hello‑algo.com 8 Figure 空间 var nodes []*node for i := 0; i < n; i++ { nodes = append(nodes, newNode(i)) } // 长度为 n 的哈希表占用 O(n) 空间 m := make(map[int]string, n) for i := 0; i < n; i++ { m[i] = strconv.Itoa(i) } } 以下递归函数会同时存在0 码力 | 347 页 | 27.40 MB | 1 年前3
 Hello 算法 1.0.0b1 Golang版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6. 散列表 80 6.1. 哈希表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.2. 哈希冲突 . 系列步骤就是 算法。 例二:查字典。在字典中,每个汉字都有一个对应的拼音,而字典是按照拼音的英文字母表顺序排列的。假设 需要在字典中查询任意一个拼音首字母为 ? 的字,一般我们会这样做: 1. 打开字典大致一半页数的位置,查看此页的首字母是什么(假设为 ? ); 2. 由于在英文字母表中 ? 在 ? 的后面,因此应排除字典前半部分,查找范围仅剩后半部分; 3. 循环执行步骤 1‑2 ,直到找到拼音首字母为 空间 var nodes []*node for i := 0; i < n; i++ { nodes = append(nodes, newNode(i)) } // 长度为 n 的哈希表占用 O(n) 空间 m := make(map[int]string, n) for i := 0; i < n; i++ { m[i] = strconv.Itoa(i) } } 以下递归函数会同时存在0 码力 | 190 页 | 14.71 MB | 1 年前3
 Hello 算法 1.0.0b2 Golang版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6. 散列表 83 6.1. 哈希表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.2. 哈希冲突 . 系列步骤就是 算法。 例二:查字典。在字典中,每个汉字都有一个对应的拼音,而字典是按照拼音的英文字母表顺序排列的。假设 需要在字典中查询任意一个拼音首字母为 ? 的字,一般我们会这样做: 1. 打开字典大致一半页数的位置,查看此页的首字母是什么(假设为 ? ); 2. 由于在英文字母表中 ? 在 ? 的后面,因此应排除字典前半部分,查找范围仅剩后半部分; 3. 循环执行步骤 1‑2 ,直到找到拼音首字母为 空间 var nodes []*node for i := 0; i < n; i++ { nodes = append(nodes, newNode(i)) } // 长度为 n 的哈希表占用 O(n) 空间 m := make(map[int]string, n) for i := 0; i < n; i++ { m[i] = strconv.Itoa(i) } } 以下递归函数会同时存在0 码力 | 202 页 | 15.73 MB | 1 年前3
 使用Go与redis构建有趣的应用structure store 特点 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 • 丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 ⽅方式(AOF、RDB、 RDB+AOF 混合) 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 • 丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、0 码力 | 176 页 | 2.34 MB | 1 年前3
 Go在数据库中间件的应用两年通信设备开发经验,四年互联网 • 五年C/C++使用经验,一年Golang 2 CONTENTS • 程序开发的需求 • Golang特性 • Go开发mysql中间件 • 整体方案 • 分表路由 • 故障切换 • 平滑扩容 • 系统运维 3 程序开发的需求 • 语言特性精炼,容易入门 • 开发效率高,代码逻辑清晰 • 运行性能强,节省机器资源 • 部署维护方便 • 生态圈完善 一样接入本系统(部分SQL语句不支持)。 6 系统整体方案 • 系统功能 • 读写分离。 • 平滑上下线Mysql。 • 主备自动切换(主-主模式)。 • 分表设计——按照Hash分表 • 分表设计——按照范围分表(年、月、日、整形) • 数据库表在多个mysql实例间平滑扩容 • 大表拆分为多个子表情况下的平滑扩容 7 系统整体方案 • 现存问题 • 数据库访问基本采用直连方式 • 无法满足数据访问平台化要求 为什么采用Go来实现 • go诸多优点,可用性高 • go处理mysql的binlog有知识积累 • 公司大规模推广使用go 8 分表路由逻辑 • 分表规则 • 哈希分表:shardkey通过Hash函数分表 • 分段分表:按照年、月、日或者整形范围分表 本质上哈希分表与分段分表都是一样,只是其Hash方式不同,使得看起来有两 种不同的数据组织方式。 9 故障主备切换 • 故障情形 • 从节点挂掉:进行剔除下线处理0 码力 | 17 页 | 4.02 MB | 1 年前3
共 26 条
- 1
 - 2
 - 3
 













