 使用Rust与ClickHouse构建高效可靠的日志系统使用Rust与ClickHouse构建高 效可靠的日志系统 刘炜 腾讯云(专有云) • 自我介绍 • 系统介绍 • 整体架构 • 系统实现 • 遇到问题 大纲 自我介绍 • 大龄码农 • 做过嵌入式/CDN/数据库开发 • 从C/C++到Rust • 现在在腾讯云(专有云)从事日志系统的开发 自我介绍 PhoTto / image / chart 系统介绍 系统介绍 • 属于腾讯专有云PaaS平台(TCS) • 提供日志的搜索/报警/处理等功能 系统介绍 • 为什么放弃 Loki • 资源占用过大 • 统计/计算能力比较弱 • 组件过多,排查问题比较困难 • 商业使用不友好的开源协议 • 为什么选择Mencius+ClickHouse • 存储计算与业务分离 • 计算/统计能力更强 • 资源占用更小,性能更好 • 更友好的开源协议 系统介绍 • 多种接入方式 • Agent • 鉴权 • ... 系统介绍 • 写入 • 每天 100G • 磁盘 • 压缩比 1:13 • 内存 • Mencius • 200M左右 • ClickHouse • 2G以下 • 接入端 • API Gateway • 日志服务(Mencius) • 存储(ClickHouse) 整体架构 • 协议层 • 处理层 • 计算层 • 存储层 系统实现 协议层 • 支持协议0 码力 | 19 页 | 2.66 MB | 1 年前3 使用Rust与ClickHouse构建高效可靠的日志系统使用Rust与ClickHouse构建高 效可靠的日志系统 刘炜 腾讯云(专有云) • 自我介绍 • 系统介绍 • 整体架构 • 系统实现 • 遇到问题 大纲 自我介绍 • 大龄码农 • 做过嵌入式/CDN/数据库开发 • 从C/C++到Rust • 现在在腾讯云(专有云)从事日志系统的开发 自我介绍 PhoTto / image / chart 系统介绍 系统介绍 • 属于腾讯专有云PaaS平台(TCS) • 提供日志的搜索/报警/处理等功能 系统介绍 • 为什么放弃 Loki • 资源占用过大 • 统计/计算能力比较弱 • 组件过多,排查问题比较困难 • 商业使用不友好的开源协议 • 为什么选择Mencius+ClickHouse • 存储计算与业务分离 • 计算/统计能力更强 • 资源占用更小,性能更好 • 更友好的开源协议 系统介绍 • 多种接入方式 • Agent • 鉴权 • ... 系统介绍 • 写入 • 每天 100G • 磁盘 • 压缩比 1:13 • 内存 • Mencius • 200M左右 • ClickHouse • 2G以下 • 接入端 • API Gateway • 日志服务(Mencius) • 存储(ClickHouse) 整体架构 • 协议层 • 处理层 • 计算层 • 存储层 系统实现 协议层 • 支持协议0 码力 | 19 页 | 2.66 MB | 1 年前3
 夏歌-使用Rust构建LLM应用第三届中国 Rust 开发者大会 使用 Rust 构建 LLM 应用 夏歌 SECTION TITLE SECTION TITLE 我们能不能直接用 Rust • 训练 • 推理 • AI 应用相关的工具 • WASI-NN spec • WasmEdge 已经支持 Pytorch 、 TensorFlow Lite • WASI-NN 2.0 比如 Langchain Rewrite 学习曲线太陡峭了,学习周期太长了 招 Rust 开发太难了 Low code Rust Rust 在系统编程已经取得了巨大成功 培养更广泛的 Rust 开发 围绕 LLM 生态封装相应的 Rust 框 架,让开发者能够使用简单的 Rust 写 应用 如何用 Rust 实现的 构建和部署 AI 相关工作流的 serverless 平台 • 上传 Rust function ,平台负责将 ChatGPT 机器 人 • PR Review 机器人 使用 Rust 构建基于 ChatGPT 的 Telegram 机器人 1. 通过不同的 prompt 扮演不同的角色,并且拥有短期记忆 2. Chat with images 3. Chat with text 这个机器人可以: 使用 Rust 构建基于 ChatGPT 的 Telegram 机器人 "0.1.0" 基于 ChatGPT0 码力 | 36 页 | 38.31 MB | 1 年前3 夏歌-使用Rust构建LLM应用第三届中国 Rust 开发者大会 使用 Rust 构建 LLM 应用 夏歌 SECTION TITLE SECTION TITLE 我们能不能直接用 Rust • 训练 • 推理 • AI 应用相关的工具 • WASI-NN spec • WasmEdge 已经支持 Pytorch 、 TensorFlow Lite • WASI-NN 2.0 比如 Langchain Rewrite 学习曲线太陡峭了,学习周期太长了 招 Rust 开发太难了 Low code Rust Rust 在系统编程已经取得了巨大成功 培养更广泛的 Rust 开发 围绕 LLM 生态封装相应的 Rust 框 架,让开发者能够使用简单的 Rust 写 应用 如何用 Rust 实现的 构建和部署 AI 相关工作流的 serverless 平台 • 上传 Rust function ,平台负责将 ChatGPT 机器 人 • PR Review 机器人 使用 Rust 构建基于 ChatGPT 的 Telegram 机器人 1. 通过不同的 prompt 扮演不同的角色,并且拥有短期记忆 2. Chat with images 3. Chat with text 这个机器人可以: 使用 Rust 构建基于 ChatGPT 的 Telegram 机器人 "0.1.0" 基于 ChatGPT0 码力 | 36 页 | 38.31 MB | 1 年前3
 尝试用RUST写教学操作系统尝试用RUST写教学操作系统 向勇、陈渝 清华大学计算机系 20181123 1 背景 • 用什么语言写操作系统? – 汇编 – C – C++ – GO – RUST – … 2 3 各位老师所教的课程信息统计 计算机组成原理 编译原理 操作系统 其他 A B C D 提交 多选题 1分 此题未设答案 教学的要求 – 简洁 • 实验环境:Nachos、XV6、ucore • CPU:X86、MIPS、ARM、RISC-V • 语言:汇编、C、… – 真实 • QEMU、开发板、真实系统 – 开放 • 树莓派、Edison、FPGA 4 已有的尝试 • 用C语言写OS – MIT 6.828 – Harvard cs161 – Stanford cs140/140e 我们的尝试-教学操作系统ucore 7 我们的尝试-系统类课程的协调 8 用RUST写操作系统: 2018年春季操作系统课 http://os.cs.tsinghua.edu.cn/oscourse/OS2018spring/projects#A.2Bi.2F56C4u.2Bi6FbnpqMkAli6Q- 9 用RUST写操作系统: 2018年秋季操作系统专题训练课0 码力 | 23 页 | 1.53 MB | 1 年前3 尝试用RUST写教学操作系统尝试用RUST写教学操作系统 向勇、陈渝 清华大学计算机系 20181123 1 背景 • 用什么语言写操作系统? – 汇编 – C – C++ – GO – RUST – … 2 3 各位老师所教的课程信息统计 计算机组成原理 编译原理 操作系统 其他 A B C D 提交 多选题 1分 此题未设答案 教学的要求 – 简洁 • 实验环境:Nachos、XV6、ucore • CPU:X86、MIPS、ARM、RISC-V • 语言:汇编、C、… – 真实 • QEMU、开发板、真实系统 – 开放 • 树莓派、Edison、FPGA 4 已有的尝试 • 用C语言写OS – MIT 6.828 – Harvard cs161 – Stanford cs140/140e 我们的尝试-教学操作系统ucore 7 我们的尝试-系统类课程的协调 8 用RUST写操作系统: 2018年春季操作系统课 http://os.cs.tsinghua.edu.cn/oscourse/OS2018spring/projects#A.2Bi.2F56C4u.2Bi6FbnpqMkAli6Q- 9 用RUST写操作系统: 2018年秋季操作系统专题训练课0 码力 | 23 页 | 1.53 MB | 1 年前3
 Rust分布式账务系统 - 胡宇第三届中国 Rust 开发者大会 Rust 构建分布式账务系统 在 Fintech 公司落地 Rust 项目的经验分享 Airwalle x 胡宇 Airwallex 我们是一家跨境支付领域的 Fintech 独角兽 关于我们 E2 轮 Fintech 独角兽,业务遍布全球 关于我们: Airwallex 墨尔本 新加坡 伦敦 深圳 香港 北京 旧金山 上海 东京 提供高效,低成本的数字银行服务 关于我们: Airwallex 从设计架构到实现细节 项目介绍 分布式账务系统 Fintech 互联网 正确性 bug= 资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 水平扩展性:利用分布式事务实现钱包集群的的水平扩 展,应对高达 100 万 TPS 的流量 可演化性:业务逻辑与底层 API 解耦,当业务发生改变 时,底层 API 不用改变 分布式账务系统 设计理念 - Rust 是我们可靠的基石 分布式账务系统 存算分离 API 解耦 读写分离 层级账号 Rust ● 事务层与账户层分 离 ● 独立水平扩展 ● CQRS ● Event Sourcing ● 针对读场景,写场0 码力 | 27 页 | 12.60 MB | 1 年前3 Rust分布式账务系统 - 胡宇第三届中国 Rust 开发者大会 Rust 构建分布式账务系统 在 Fintech 公司落地 Rust 项目的经验分享 Airwalle x 胡宇 Airwallex 我们是一家跨境支付领域的 Fintech 独角兽 关于我们 E2 轮 Fintech 独角兽,业务遍布全球 关于我们: Airwallex 墨尔本 新加坡 伦敦 深圳 香港 北京 旧金山 上海 东京 提供高效,低成本的数字银行服务 关于我们: Airwallex 从设计架构到实现细节 项目介绍 分布式账务系统 Fintech 互联网 正确性 bug= 资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 水平扩展性:利用分布式事务实现钱包集群的的水平扩 展,应对高达 100 万 TPS 的流量 可演化性:业务逻辑与底层 API 解耦,当业务发生改变 时,底层 API 不用改变 分布式账务系统 设计理念 - Rust 是我们可靠的基石 分布式账务系统 存算分离 API 解耦 读写分离 层级账号 Rust ● 事务层与账户层分 离 ● 独立水平扩展 ● CQRS ● Event Sourcing ● 针对读场景,写场0 码力 | 27 页 | 12.60 MB | 1 年前3
 新一代分布式高性能图数据库的构建 - 沈游人新一代分布式高性能图数据库的构建 北京海致星图科技有限公司 2023-06-18 沈游人 数据库与大数据专场 海致简介—企业级知识图谱开创者 专业顶尖技术团队支撑 超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 授、中国计算机学会前理事长,中国计算机系统结构 的学科带头人,我国高性能计算和存储系统等方面的 泰斗和先行者。 2021 年 3 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算两项 Computer Federation )“ 2021 年 CCF 科 学技术奖科技进步卓越奖”。 伴随市场对于知识图谱应用的不断深入,图数据规模和应用性能之间的矛盾愈 加凸显,海致针对以上背景展开了系统性的技术攻关,解决了图数据的高效存 储、索引及复制难题,提出了基于图缩减的高效分析方法,并孵化出了一个大 规模图数据分析平台 AtlasGraph 。 5 获得 2022 年中国电子学会科学技术奖科技进步一等奖0 码力 | 38 页 | 24.68 MB | 1 年前3 新一代分布式高性能图数据库的构建 - 沈游人新一代分布式高性能图数据库的构建 北京海致星图科技有限公司 2023-06-18 沈游人 数据库与大数据专场 海致简介—企业级知识图谱开创者 专业顶尖技术团队支撑 超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 授、中国计算机学会前理事长,中国计算机系统结构 的学科带头人,我国高性能计算和存储系统等方面的 泰斗和先行者。 2021 年 3 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算两项 Computer Federation )“ 2021 年 CCF 科 学技术奖科技进步卓越奖”。 伴随市场对于知识图谱应用的不断深入,图数据规模和应用性能之间的矛盾愈 加凸显,海致针对以上背景展开了系统性的技术攻关,解决了图数据的高效存 储、索引及复制难题,提出了基于图缩减的高效分析方法,并孵化出了一个大 规模图数据分析平台 AtlasGraph 。 5 获得 2022 年中国电子学会科学技术奖科技进步一等奖0 码力 | 38 页 | 24.68 MB | 1 年前3
 Rust OS 开源操作系统训练营的教与学-0615-李明第三届中国Rust开发者大会 Rust OS 开源操作系统训练营的教与学 李明 清华大学 2023-6-17 Rust China Conf 2023 Rust OS 开源操作系统训练营的教与学 1 Rust OS 开源训练营的起因和发展 Title Title Title 开源操作系统训练营的起源(2020年) 陈渝老师 向勇老师 OS Tutorial Summer 训练营的愿景和目标 目标 愿景 核心产出 探索新一代安全高性能操作系统的设计与构建 影响并培养更多的人学会写操作系统 每年为高校和企业培养1000名操作系统开发人才 参加训练营要回答的三个问题 你为什么要来参加这个活动? 为什么要以开源 的方式来参与? 我们如何能把这些 知识技能学到? Rust OS 开源操作系统训练营的教与学 2 开源训练营的总体规划和教学实践 教什么?怎么学? RISC-V体系结构 一阶段 完成94道Rustlings编程题 (2周) OS 大实验 rCore/uCore 内核 二阶段 完成5个OS编程大实验 (2周) ArceOS 组件化 操作系统 三阶段 Hypervisor 虚拟化技术 四阶段 完成1个OS组件或驱动 (4周) 完成1个硬件虚拟化适配 (4周) 台阶式向上迈进 训练营的教学/实习安排 • 春夏季训练营0 码力 | 26 页 | 2.62 MB | 1 年前3 Rust OS 开源操作系统训练营的教与学-0615-李明第三届中国Rust开发者大会 Rust OS 开源操作系统训练营的教与学 李明 清华大学 2023-6-17 Rust China Conf 2023 Rust OS 开源操作系统训练营的教与学 1 Rust OS 开源训练营的起因和发展 Title Title Title 开源操作系统训练营的起源(2020年) 陈渝老师 向勇老师 OS Tutorial Summer 训练营的愿景和目标 目标 愿景 核心产出 探索新一代安全高性能操作系统的设计与构建 影响并培养更多的人学会写操作系统 每年为高校和企业培养1000名操作系统开发人才 参加训练营要回答的三个问题 你为什么要来参加这个活动? 为什么要以开源 的方式来参与? 我们如何能把这些 知识技能学到? Rust OS 开源操作系统训练营的教与学 2 开源训练营的总体规划和教学实践 教什么?怎么学? RISC-V体系结构 一阶段 完成94道Rustlings编程题 (2周) OS 大实验 rCore/uCore 内核 二阶段 完成5个OS编程大实验 (2周) ArceOS 组件化 操作系统 三阶段 Hypervisor 虚拟化技术 四阶段 完成1个OS组件或驱动 (4周) 完成1个硬件虚拟化适配 (4周) 台阶式向上迈进 训练营的教学/实习安排 • 春夏季训练营0 码力 | 26 页 | 2.62 MB | 1 年前3
 王宜国 - 基于 Rust 编程语⾔构建 Amphitheatre CLI  Desktop  Server 的全平台实践经验第三届中国Rust开发者⼤会 基于 Rust 编程语⾔构建 Amphitheatre CLI / Desktop / Server 的全平台实践经验 王宜国 - 独⽴开源软件作者 RUST CHINA CONF 2023 • 项⽬背景介绍 • 产品功能演示 • 应⽤场景概览 项⽬介绍 • 概念 • 架构设计 • 技术实现 设计与实现 ⼤纲 Amphitheatre 云开发环境(Cloud 开发⼯程师需要在本机安装各种编程语⾔的运⾏时和相关的框 架以及库,随着业务规模的增⻓,多语⾔多版本的维护和管理 变得越来越复杂。 技术栈杂多 研发流程⻓达⼗⼏个步骤:安装开发软件、配置环境、克隆代 码、开发、本地调试、提交代码、编译构建、⾃动化测试、部 署到测试环境、测试验收、合并代码到主线、部署到⽣产环 境… 研发流程繁⻓ 起因:开发者之痛 为了部署测试,不仅要学习容器化、Kubernetes,还要申请资 源安装配置各项中间件,学习成本⾼,费⼼费⼒ ⽀持微服务架构体系和多⼈协作联调测试 Kayn Sona Riven Event Account Project Activity Tariq Share Redis ETCD 可让您完全跳过镜像构建, 使⽤新代码更新正在运⾏的容器, 只需⼏秒钟⽽不是⼏分钟。 本地开发实时部署到远程集群 如何⼯作的? Kubernetes 集群 更改 资源定义 ⻆⾊定义 执⾏资源 资源定义0 码力 | 34 页 | 10.81 MB | 1 年前3 王宜国 - 基于 Rust 编程语⾔构建 Amphitheatre CLI  Desktop  Server 的全平台实践经验第三届中国Rust开发者⼤会 基于 Rust 编程语⾔构建 Amphitheatre CLI / Desktop / Server 的全平台实践经验 王宜国 - 独⽴开源软件作者 RUST CHINA CONF 2023 • 项⽬背景介绍 • 产品功能演示 • 应⽤场景概览 项⽬介绍 • 概念 • 架构设计 • 技术实现 设计与实现 ⼤纲 Amphitheatre 云开发环境(Cloud 开发⼯程师需要在本机安装各种编程语⾔的运⾏时和相关的框 架以及库,随着业务规模的增⻓,多语⾔多版本的维护和管理 变得越来越复杂。 技术栈杂多 研发流程⻓达⼗⼏个步骤:安装开发软件、配置环境、克隆代 码、开发、本地调试、提交代码、编译构建、⾃动化测试、部 署到测试环境、测试验收、合并代码到主线、部署到⽣产环 境… 研发流程繁⻓ 起因:开发者之痛 为了部署测试,不仅要学习容器化、Kubernetes,还要申请资 源安装配置各项中间件,学习成本⾼,费⼼费⼒ ⽀持微服务架构体系和多⼈协作联调测试 Kayn Sona Riven Event Account Project Activity Tariq Share Redis ETCD 可让您完全跳过镜像构建, 使⽤新代码更新正在运⾏的容器, 只需⼏秒钟⽽不是⼏分钟。 本地开发实时部署到远程集群 如何⼯作的? Kubernetes 集群 更改 资源定义 ⻆⾊定义 执⾏资源 资源定义0 码力 | 34 页 | 10.81 MB | 1 年前3
 Comprehensive Rust(简体中文) 202412. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 使用 Cargo 17 2.1 Rust 生态系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 本培训中的代码示例 . . . . . 19.7 Drop 特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 19.8 练习:构建器类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 19.8.1 解答 . . . . . . 26.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 26.2 文件系统层级结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 26.3 可见性 . . . . . . .0 码力 | 359 页 | 1.33 MB | 10 月前3 Comprehensive Rust(简体中文) 202412. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 使用 Cargo 17 2.1 Rust 生态系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 本培训中的代码示例 . . . . . 19.7 Drop 特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 19.8 练习:构建器类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 19.8.1 解答 . . . . . . 26.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 26.2 文件系统层级结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 26.3 可见性 . . . . . . .0 码力 | 359 页 | 1.33 MB | 10 月前3
 Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 12. 一个 I/O 项目:构建命令行程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 14.1. 采用发布配置自定义构建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 21. 最后的项目:构建多线程 web server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 25 天前3 Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 12. 一个 I/O 项目:构建命令行程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 14.1. 采用发布配置自定义构建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 21. 最后的项目:构建多线程 web server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 25 天前3
 Hello 算法 1.1.0 Rust版直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge isn’t free. You have to pay attention.”从这个意义上看,这本 书并非完全“免费”。为了不辜 从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 265 12.2 分治搜索策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 12.3 构建二叉树问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 12.4 汉诺塔问题 . . .0 码力 | 388 页 | 18.50 MB | 1 年前3 Hello 算法 1.1.0 Rust版直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge isn’t free. You have to pay attention.”从这个意义上看,这本 书并非完全“免费”。为了不辜 从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 265 12.2 分治搜索策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 12.3 构建二叉树问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 12.4 汉诺塔问题 . . .0 码力 | 388 页 | 18.50 MB | 1 年前3
共 35 条
- 1
- 2
- 3
- 4













