Hello 算法 1.2.0 繁体中文 Rust 版在與讀者交流期間,我 最常被問到的一個問題是“如何入門演算法”。漸漸地,我對這個問題產生了濃厚的興趣。 兩眼一抹黑地刷題似乎是最受歡迎的方法,簡單、直接且有效。然而刷題就如同玩“踩地雷”遊戲,自學能 力強的人能夠順利將地雷逐個排掉,而基礎不足的人很可能被炸得焦頭爛額,並在挫折中步步退縮。通讀教 材也是一種常見做法,但對於面向求職的人來說,畢業論文、投遞履歷、準備筆試和面試已經消耗了大部分 attention.”從這個意義上看,這本 書並非完全“免費”。為了不辜負你為本書所付出的寶貴“注意力”,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 com 網頁版以獲得更佳的閱讀體驗。 推薦語 “一本通俗易懂的資料結構與演算法入門書,引導讀者手腦並用地學習,強烈推薦演算法初學者閱讀!” ——鄧俊輝,清華大學計算機系教授 “如果我當年學資料結構與演算法時有《Hello 演算法》,學起來應該會簡單 10 倍!” ——李沐,亞馬遜資深首席科學家 電腦的出現為世界帶來了巨大的變革,它憑藉高速的運算能力與卓越的可程式化特性,成為執行演算法 與處0 码力 | 388 页 | 18.82 MB | 10 月前3
Comprehensive Rust(繁体中文). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 62 練習 317 62.1 哲學家就餐問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 62.2 多執行緒連結檢查器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 66 練習 342 66.1 哲學家就餐問題 — 非同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 66.2 廣播聊天應用程式 . . . . . . 網址閱讀課程資料,別忘了查看這個連結的內容是否有更新。 The course is also available as a PDF. 本課程旨在教授 Rust 的知識。我們會假設您是從零開始學習 Rust,希望能夠: • 讓您對 Rust 語法和語言有全面的認識。 • 讓您學會在 Rust 中修改現有程式及編寫新程式。 • 向您介紹常見的 Rust 慣用語法。 We call the first four course days0 码力 | 358 页 | 1.41 MB | 11 月前3
Comprehensive Rust(繁体中文) 202406. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 62 練習 315 62.1 哲學家就餐問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 62.2 多執行緒連結檢查器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 66 練習 340 66.1 哲學家就餐問題 — 非同步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 66.2 廣播聊天應用程式 . . . . . . 網址閱讀課程資料,別忘了查看這個連結的內容是否有更新。 The course is also available as a PDF. 本課程旨在教授 Rust 的知識。我們會假設您是從零開始學習 Rust,希望能夠: • 讓您對 Rust 語法和語言有全面的認識。 • 讓您學會在 Rust 中修改現有程式及編寫新程式。 • 向您介紹常見的 Rust 慣用語法。 We call the first four course days0 码力 | 356 页 | 1.41 MB | 1 年前3
Rust 程序设计语言简体中文版确实不允许 空值。 外部作用域声明了一个没有初值的变量 r ,而内部作用域声明了一个初值为 5 的变量 x 。在 内部作用域中,我们尝试将 r 的值设置为一个 x 的引用。接着在内部作用域结束后,尝试打 印出 r 的值。这段代码不能编译因为 r 引用的值在尝试使用之前就离开了作用域。如下是错 误信息: 226/600 Rust 程序设计语言 简体中文版 $ cargo run Compiling 标准输出(standard output,stdout )对应一般信息,标准错误(standard error,stderr ) 则用于错误信息。这种区别允许用户选择将程序正常输出定向到一个文件中并仍将错误信息打 印到屏幕上。 但是 println! 宏只能够打印到标准输出,所以我们必须使用其他方法来打印到标准错误。 检查错误应该写入何处 首先,让我们观察一下目前 minigrep 打印的所有内容是如何被写入标准输出的,包括那些应 borrows_mutably 定义 时,它捕获了 list 的可变引用。闭包在被调用后就不再被使用,这时可变借用结束。因为当 可变借用存在时不允许有其它的借用,所以在闭包定义和调用之间不能有不可变引用来进行打 印。可以尝试在这里添加 println! 看看你会得到什么报错信息! 即使闭包体不严格需要所有权,如果希望强制闭包获取它用到的环境中值的所有权,可以在参 数列表前使用 move 关键字。 在0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 语言学习笔记move 后,包体内就会对 x 进行了可变借用,而不 是“剥夺”x 的所有权,细心的同学还注意到我们在前后还加了{}大括号作用 域,是为了作用域结束后让可变借用失效,这样 println 才可以成功访问并打 印我们期待的内容。 最新的版本不加大括号也可以的?但是为了可读加上大括号比较好。尽可能满 足作用域内部的规则。 具体内容需要查看闭包的可变借用。 3.2 引用和借用 所有权系统允许我0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0式的执行 结果时,格式化字符串(format string)中大括号中留空,格式化字符串后跟逗号分隔的需要 打印的表达式列表,其顺序与每一个空大括号占位符的顺序一致。在一个 println! 调用中打 印变量和表达式的值看起来像这样: let x = 5; let y = 10; println!("x = {x} and y + 2 = {}", y + 2); 这行代码会打印出 x = 5 的值,而 Err 则存放一个类型 E 的值。这个定义使得 Result 枚举能很方便的表达任何可能成功(返回 T 类型的值)也可能失败(返回 E 类型的值)的操作。实际上,这就是我们在示例 9-3 用来打 开文件的方式:当成功打开文件的时候,T 对应的是 std::fs::File 类型;而当打开文件出现 问题时,E 的值则是 std::io::Error 类型。 当你意识到代码中定义了多个结构体或 标准输出(standard output,stdout)对应一般信息,标准错误(standard error,stderr) 则用于错误信息。这种区别允许用户选择将程序正常输出定向到一个文件中并仍将错误信息打 印到屏幕上。 但是 println! 宏只能够打印到标准输出,所以我们必须使用其他方法来打印到标准错误。 检查错误写入何处 首先,让我们观察一下目前 minigrep 打印的所有内容是如何被写入标准输出的,包括那些应0 码力 | 562 页 | 3.23 MB | 1 月前3
Hello 算法 1.1.0 Rust版系统需要安装 MinGW(配置教程);MacOS 自带 Clang ,无须安装。 2. 在 VS Code 的插件市场中搜索 c++ ,安装 C/C++ Extension Pack 。 3.(可 选) 打 开 Settings 页 面, 搜 索 Clang_format_fallback Style 代 码 格 式 化 选 项, 设 置 为 { BasedOnStyle: Microsoft, BreakBeforeBraces:0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版系统需要安装 MinGW(配置教程);MacOS 自带 Clang ,无须安装。 2. 在 VS Code 的插件市场中搜索 c++ ,安装 C/C++ Extension Pack 。 3.(可 选) 打 开 Settings 页 面, 搜 索 Clang_format_fallback Style 代 码 格 式 化 选 项, 设 置 为 { BasedOnStyle: Microsoft, BreakBeforeBraces:0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版系统需要安装 MinGW(配置教程);MacOS 自带 Clang ,无须安装。 2. 在 VS Code 的插件市场中搜索 c++ ,安装 C/C++ Extension Pack 。 3.(可 选) 打 开 Settings 页 面, 搜 索 Clang_format_fallback Style 代 码 格 式 化 选 项, 设 置 为 { BasedOnStyle: Microsoft, BreakBeforeBraces:0 码力 | 383 页 | 17.61 MB | 1 年前3
共 9 条
- 1













