Hello 算法 1.2.0 简体中文 Rust 版如果你已经积累一定的刷题量,熟悉大部分题型,那么本书可助你回顾与梳理算法知识体系,仓库源代码可 以当作“刷题工具库”或“算法字典”来使用。 若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 定问题的一组指令或操作步骤,它具有以下特性。 ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 数据结构(data structure)是组织和存储数据的方式,涵盖数据内容、数据之间关系和数据操作方法,它具 有以下设计目标。 第 1 章 初识算法 如果把具体的工作技能比作是武功的“招式”的话,那么基础科目应该更像是“内功”。 我认为学算法(以及其他基础科目)的意义不是在于在工作中从零实现它,而是基于学到的知识,在解决问 题时能够作出专业的反应和判断,从而提升工作的整体质量。举一个简单例子,每种编程语言都内置了排序 函数: ‧ 如果我们没有学过数据结构与算法,那么给定任何数据,我们可能都塞给这个排序函数去做了。运行顺 畅、性能不错,看上去并没有什么问题。0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版如果你已经积累一定的刷题量,熟悉大部分题型,那么本书可助你回顾与梳理算法知识体系,仓库源代码可 以当作“刷题工具库”或“算法字典”来使用。 若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。 � 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 algorithm」是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。 ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 「数据结构 data structure」是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 度之前,我们先来了解如何在程序中实现重复执行任务,即两种基本的程序控制结构:迭代、递归。 2.2.1 迭代 「迭代 iteration」是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某 段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.1.0 Rust版如果你已经积累一定的刷题量,熟悉大部分题型,那么本书可助你回顾与梳理算法知识体系,仓库源代码可 以当作“刷题工具库”或“算法字典”来使用。 若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。 前置条件 你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2 内容结构 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 定问题的一组指令或操作步骤,它具有以下特性。 ‧ 问题是明确的,包含清晰的输入和输出定义。 ‧ 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 数据结构(data structure)是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 度之前,我们先来了解如何在程序中实现重复执行任务,即两种基本的程序控制结构:迭代、递归。 2.2.1 迭代 迭代(iteration)是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段 代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量0 码力 | 388 页 | 18.50 MB | 1 年前3
Rust 语言学习笔记1.2 rust doc ............................................................................. 17 2.2 条件表达式 ................................................................................. 18 2.2.1 if # 同上,区别是是优化编译的 第二章 Rust 基本语法 2.1 前置知识 2.1.1 表达式和语句 其它语言中: 表达式是用来表达某含义的。可以包括定义某值,或判断某物,最终会有一个 “值”的体现,“Anything that has a value"。 比如说 var a=b 就是表达式,是把 b 的值赋给 a,或者 if (a == b)其中 if() 内的也是表达式。 var a=b; 这条是赋值语句,这里微小的差别就是加上了分号;作为语句结 束符。 其实表达式简单的可以理解成某语言的语法,而由这些语法构成的一条执行语 句则是表达式语句。最直观的根据是否有分号来判断。 但是在 rust 语言中有点不同, “let a = 5”是表达式语句,即使没有分号。 let y = (let a = 4);会返回下面的错误: variable declaration0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust 程序设计语言简体中文版它们会指引你编写出能运 行的代码。为此,我们将提供许多不能编译的示例,以及在每种情况下编译器将显示的错误信 息。请知悉,如果你输入并运行一个随机示例,它可能无法编译!确保你阅读了示例周围的文 本,以判断你尝试运行的示例是否意在出错。Ferris 也将帮助你区分那些不是意在工作的代 码: Ferris 含义 这段代码无法通过编译! 9/600 Rust 程序设计语言 简体中文版 这段代码会 secret number is: 58 Please input your guess. 76 You guessed: 76 Too big! 漂亮!即便是在猜测之前添加了空格,程序依然能判断出用户猜测了 76。多运行程序几次, 输入不同的数字来检验不同的行为:猜一个正确的数字,猜一个过大的数字和猜一个过小的数 字。 现在游戏已经大体上能玩了,不过用户只能猜一次。增加一个循环来改变它吧! main() { let t = true; let f: bool = false; // with explicit type annotation } 使用布尔值的主要场景是条件表达式,例如 if 表达式。在 “控制流”(“Control Flow”) 部分 将介绍 if 表达式在 Rust 中如何工作。 字符类型 Rust 的 char 类型是语言中最原生的字母类型。下面是一些声明0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0它们会指引你编写出能运 行的代码。为此,我们将提供许多不能编译的示例,以及在每种情况下编译器将显示的错误信 息。请知悉,如果你输入并运行一个随机示例,它可能无法编译!确保你阅读了示例周围的文 本,以判断你尝试运行的示例是否出错。Ferris 也将帮助你区分那些不是意在工作的代码: Ferris 含义 这段代码无法通过编译! 9/562Rust 程序设计语言 简体中文版 这段代码会 Panic! secret number is: 58 Please input your guess. 76 You guessed: 76 Too big! 漂亮!即便是在猜测之前添加了空格,程序依然能判断出用户猜测了 76。多运行程序几次, 输入不同的数字来检验不同的行为:猜一个正确的数字,猜一个过大的数字和猜一个过小的数 字。 现在游戏已经大体上能玩了,不过用户只能猜一次。增加一个循环来改变它吧! main() { let t = true; let f: bool = false; // with explicit type annotation } 使用布尔值的主要场景是条件表达式,例如 if 表达式。在 “控制流”(“Control Flow”) 部分 将介绍 if 表达式在 Rust 中如何工作。 字符类型 Rust 的 char 类型是语言中最原始的字母类型。下面是一些声明0 码力 | 562 页 | 3.23 MB | 25 天前3
Comprehensive Rust(日语) 202412today: • Rust の基本的な構文:変数、スカラー型と複合型、列挙型、構造体、参照、関数、メソッド。 • Types and type inference. • 制御フローの構造: ループ、条件など。 • ユーザー定義型: 構造体と列挙型。 • パターン マッチング: 列挙型、構造体、配列の分解。 スケジュール Including 10 minute breaks, this session ロックの最後の式です(存在する場合)。上記の例では、型は () です。 パターンの変数(この例では key)により、マッチアーム内で使用できるバインディングが作成されま す。 63 マッチガードにより、条件が true の場合にのみアームが一致します。 キーポイント: • 特定の文字がパターンでどのように使用されるかを説明します。 – | を or として指定する – .. は必要に応じて展開できる マッチガードは、マッチアーム内の個別の if 式とは異なります。分岐ブロック内(=> の後)の if 式は、マッチアームが選択された後に実行されます。そのブロック内で if 条件が満たされな かった場合、元の match 式の他のアームは考慮されません。 • ガードで定義された条件は、| が付いたパターン内のすべての式に適用されます。 More To Explore • Another piece of pattern syntax0 码力 | 381 页 | 1.36 MB | 10 月前3
Comprehensive Rust(简体中文) 202412基本语法:变量、标量(scalar)和复合(compound)类型、枚举(Enum)、结构体(struct)、引 用、函数和方法。 • Types and type inference. • 控制流结构:循环、条件语句等。 • 用户定义的类型:结构体和枚举。 • 模式匹配:解构枚举、结构体和数组(array)。 时间表 Including 10 minute breaks, this session should of the block, if any. In the example above, the type is (). 模式中的变量(本例中为 key)将创建一个可在匹配分支内使用的绑定。 只有当条件为真时,保护语句才能使分支匹配成功。 58 关键点: • You might point out how some specific characters are being used when 卫视为独立的语法功能。 • 它们与匹配分支中的单独“if”表达式不同。选择匹配分支后,分支块内(在“=>”之后)会出现“if”表 达式。如果该分支块内的“if”条件失败,系统不会考虑原始“match”表达式的其他分支。 • 只要表达式在包含“|”的模式中,就会适用守卫定义的条件。 12.2 解构 与元组一样,结构体和枚举也可以通过匹配方式进行解构: 结构体 struct Foo { x: (u32, u32)0 码力 | 359 页 | 1.33 MB | 10 月前3
Rust分布式账务系统 - 胡宇领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● 账户限额 ● 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否 高可用:在部分节点失效的情况下,依旧可以提供正确的 服务 超低延迟:实时交易,超低响应延迟 水平扩展性:利用分布式事务实现钱包集群的的水平扩 展,应对高达 100 万 在不同分区执行一个事务的 TCC 转账计划 ● 转账计划 ○ 有向无环图 ○ 节点是一个任务 ○ 边是依赖关系 ● 事务层 Marker 负责执行计划 ○ ACID 保证 ○ 依赖控制 ○ 条件执行 ○ 调度账户变动请求 跨分区转账 分布式账务系统 拥抱开源 github: https://github.com/airwallex/Auticuro doc: https://airwallex0 码力 | 27 页 | 12.60 MB | 1 年前3
洛佳 组件化驱动、ROM运行环境与RustSBIRISC-V上的快速陷入通道 • RISC-V并未强制规定陷入栈的内容,它的上下文切换 过程可定制,若给予上下文切换更多的信息,它的性 能就可得到进一步提升 • 上下文调用时先保存部分寄存器,让高级语言判断是 否进入完整流程,或给定需要设置的寄存器数量 • 尽量减少上下文切换对空间局部性的破坏 • 向量化陷入:硬件取向量,分流mtime、msoft等中断 过程和异常过程,进一步细化通路,明确上下文保存0 码力 | 21 页 | 3.12 MB | 1 年前3
共 13 条
- 1
- 2













