Hello 算法 1.2.0 繁体中文 Rust 版作者:靳宇棟(@krahets) 程式碼審閱:伍志豪(@night‑cruise)、榮怡(@rongyi) Release 1.2.0 2024‑12‑06 序 兩年前,我在力扣上分享了“劍指 Offer”系列題解,受到了許多讀者的鼓勵與支持。在與讀者交流期間,我 最常被問到的一個問題是“如何入門演算法”。漸漸地,我對這個問題產生了濃厚的興趣。 兩眼一抹黑地刷題似乎是最受歡迎的方法,簡單、直接且有效。然而刷題就如同玩“踩地雷”遊戲,自學能 ”從這個意義上看,這本 書並非完全“免費”。為了不辜負你為本書所付出的寶貴“注意力”,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www 從巧奪天工的匠人 技藝、到解放生產力的工業產品、再到宇宙運行的科學規律,幾乎每一件平凡或令人驚嘆的事物背後,都隱 藏著精妙的演算法思想。 同樣,資料結構無處不在:大到社會網絡,小到地鐵路線,許多系統都可以建模為“圖”;大到一個國家,小 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字典就像一個“雜湊表”,能夠快速查找目標詞條。0 码力 | 388 页 | 18.82 MB | 10 月前3
洛佳 组件化驱动、ROM运行环境与RustSBI于 嵌 入 式 、固 件 和 操 作 系 统 生 态 中 。 轻 松 构 造 测 试 框 架 ,快 速 验 证 组 件 。 灵 活 、 高 效 、 低 成 本 从 基 础 算 法 到 文 件 、网 络 ,操 作 系 统 的 各 个 部 分 可 拆 为 组 件 。灵 活 组 合 组 件 ,构 成 符 合 应 用 需 求 的 组 件 化 操 作 系 统 。 系 统 软 件 开 发 新 模 式 组 支 持 库 高 速 板 级 通 信 D D R 、 P S R A M 等 , 结 合 控 制 器 选 择 和 输 入 合 适 的 参 数 , 用 于 准 备 后 续 启 动 过 程 多 媒 体 外 设 M I P I 、 H D M I 、 D i s p l a y P o r t 和 音 频 连 接 等 , 与 对 应 的 功 能 、 电 源 外 设 共 同 设 计 编译即可获得包含镜像头的固件包, 这是传统开发方法不具备的功能。 多核异构芯片的镜像融合(以BL808为例) 部 分 固 件 调 试 首 先 编 译 程 序 为 单 核 固 件 , 再 融 合 三 个 固 件 为 多 核 。 单 核 固 件 可 独 立 运 行 , 易 于 按 处 理 器 核 单 独 划 分 和 调 试 。 融 合 规 则 若 三 个 不 同 固 件 中 镜 像 头 的 闪 存 配 置 、0 码力 | 21 页 | 3.12 MB | 1 年前3
基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺云服务版 核心功能开源 • SQL 支持 • 无模式写入 • 缓存 • 流计算 • 数据订阅 • 集群、高可用 高可靠、线性扩展 + 专业技术服务 • 边云数据复制 • 跨云 / 异地数据复制 • 增量备份 • 多级存储 • 工业数据接入 全托管时序数据 管理云服务平台 • 全托管服务 • VPC 对等连接 • 多云部署( AWS/Azure/ GCP) CONTENTS 2023.05 2023.09 Usability Functionality taosX - 集群运维 • 数据库复制 • 全量 / 增量备份 • 数据导入 / 导出 • 数据库迁移 • 异地容灾 taosX - 数据接入 Comming Soon taosX - 流式处理 taosX - Transformer • Parse {"parse": {"field1": { "cast":0 码力 | 29 页 | 2.26 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人路径算法 • … 图深度学习 • 图嵌入 • 图卷积 • 图注意力网络 • 图自编码器 图查询及其应用场景 图查询 • 使用图数据库的查询语言进行点边的关联查询,可以快速完成传统数据库难以完成的 多度点边关 联 当前图的典型应用场景 路径识别 群体挖掘 节点识别 相似节点 链接预测 连接强度 一致行动人 同事关系 实际控制人 可能认识的人 上下游 同爱好的人 亲属关系 … 针对大规模图优化的存算引擎 - 配合 Atlas 图平台,实现无代码图分析 - Query 性能分析模块,启发式提示优化 - 内置多种分析函数,面向分析师友好 -MVOCC 保证事务一致性 - 多副本管理保证数据服务高可用 - 在线备份提供容灾保障 高速 易用 可靠 Why Rust ? Performance • Blazingly fast and memory-efficient 内存缓存结构:加速图数据查询 • 由于图数据的查询通常是 IO 密集型,且访问的数据随机又分散,拥有内存缓存能起到很 好的加速效果 • 要想让内存缓存发挥最大的作用,就要能在有限的内存中存下尽量多的图数据 • 例如,对于属性的存储,可以通过自行序列化 / 反序列化大幅节省内存 • 而自定义存储格式往往需要内存的精细操作,由于 Rust 允许在 unsafe 下访问裸指针, 可以实现零开销读取0 码力 | 38 页 | 24.68 MB | 1 年前3
Hello 算法 1.0.0 Rust版轮的重复后,就能将其牢记在心。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo.com 9 图 log_recur(n: f32) -> i32 { if n <= 1.0 { return 0; } log_recur(n / 2.0) + 1 } 对数阶常出现于基于分治策略的算法中,体现了“一分为多”和“化繁为简”的算法思想。它增长缓慢,是 仅次于常数阶的理想的时间复杂度。 � ?(log ?) 的底数是多少? 准确来说,“一分为 ?”对应的时间复杂度是 ?(log? ?) 。而通过对数换底公式,我们可以 ,元素之间是一对一的顺序关系。 ‧ 非线性数据结构:树、堆、图、哈希表。 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.1.0 Rust版GitHub 仓库。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo.com 9 图 log_recur(n: i32) -> i32 { if n <= 1 { return 0; } log_recur(n / 2) + 1 } 对数阶常出现于基于分治策略的算法中,体现了“一分为多”和“化繁为简”的算法思想。它增长缓慢,是 仅次于常数阶的理想的时间复杂度。 ?(log ?) 的底数是多少? 准确来说,“一分为 ?”对应的时间复杂度是 ?(log? ?) 。而通过对数换底公式,我们可以得到具有 ,元素之间是一对一的顺序关系。 ‧ 非线性数据结构:树、堆、图、哈希表。 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版GitHub 仓库。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 www.hello‑algo.com 9 log_recur(n: i32) -> i32 { if n <= 1 { return 0; } log_recur(n / 2) + 1 } 对数阶常出现于基于分治策略的算法中,体现了“一分为多”和“化繁为简”的算法思想。它增长缓慢,是 仅次于常数阶的理想的时间复杂度。 ?(log ?) 的底数是多少? 准确来说,“一分为 ?”对应的时间复杂度是 ?(log? ?) 。而通过对数换底公式,我们可以得到具有 ,元素之间是一对一的顺序关系。 ‧ 非线性数据结构:树、堆、图、哈希表。 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方0 码力 | 387 页 | 18.51 MB | 10 月前3
Comprehensive Rust(日语) 202412を設定する必要がありま す。ほとんどのエディタでは、rust-analyzer と通信することでこれを行います。rust-analyzer は、 VS Code、Emacs、Vim / Neovim など、多くのエディタ向けにオートコンプリート機能と「定義に移 動」機能を提供します。RustRover という別の IDE も用意されています。 • On Debian/Ubuntu, you can also 版がリリースされた新しいプログラミング言語です: • Rust は C++と同様に、静的にコンパイルされる言語です – rustc はバックエンドに LLVM を使用しています。 • Rust は多くのプラットフォームとアーキテクチャをサポートしています: – x86, ARM, WebAssembly, … – Linux, Mac, Windows, … • Rust は様々なデバイスで使用されています: には、コードを生成するための主要な「プロファイル」が 2 つあります。1 つは Debug(追 加のランタイムチェックがあり、最適化が少ない)で、もう 1 つは Release(ランタイムチェック が少なく、最適化が多い)です。これらは上部の [Debug] からアクセスできます。 • 興味がある場合は、 「...」の下にある「ASM」を使用すると、生成されたアセンブリ コードを確認 できます。 26 受講者0 码力 | 381 页 | 1.36 MB | 10 月前3
Comprehensive Rust(繁体中文)269 53.5.1 Bitflags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 53.5.2 多個暫存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 53.5.3 驅動程式 . . . . . . 62 練習 317 62.1 哲學家就餐問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 62.2 多執行緒連結檢查器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 62.3 並行:上午練習 . . . . . 中修改現有程式及編寫新程式。 • 向您介紹常見的 Rust 慣用語法。 We call the first four course days Rust Fundamentals. 在此基礎上,我們將誠摯邀請您深入探討一或多個專題: • Android:這是半天的課程,會說明如何針對 Android 平台開發作業 (Android 開放原始碼計畫) 使用 Rust,並介紹與 C、C++ 和 Java 的互通性。 • Chromium:0 码力 | 358 页 | 1.41 MB | 10 月前3
Comprehensive Rust(繁体中文) 202406267 53.5.1 Bitflags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 53.5.2 多個暫存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 53.5.3 驅動程式 . . . . . . 62 練習 315 62.1 哲學家就餐問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 62.2 多執行緒連結檢查器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 62.3 並行:上午練習 . . . . . 中修改現有程式及編寫新程式。 • 向您介紹常見的 Rust 慣用語法。 We call the first four course days Rust Fundamentals. 在此基礎上,我們將誠摯邀請您深入探討一或多個專題: • Android:這是半天的課程,會說明如何針對 Android 平台開發作業 (Android 開放原始碼計畫) 使用 Rust,並介紹與 C、C++ 和 Java 的互通性。 • Chromium:0 码力 | 356 页 | 1.41 MB | 1 年前3
共 30 条
- 1
- 2
- 3













