Hello 算法 1.2.0 繁体中文 Rust 版146 7.3 二元樹陣列表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 7.4 二元搜尋樹 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 7.5 AVL 樹 * . . . . . . . . . . . . . . . . . 212 第 10 章 搜尋 214 10.1 二分搜尋 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 10.2 二分搜尋插入點 . . . . . . . . . . . . . . . . . . . . . 219 10.3 二分搜尋邊界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 10.4 雜湊最佳化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 10.5 重識搜尋演算法 . .0 码力 | 388 页 | 18.82 MB | 10 月前3
Hello 算法 1.1.0 Rust版213 10.1 二分查找 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 10.2 二分查找插入点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 10.3 二分查找边界 . 和 步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 查字典这个小学生必备技能,实际上就是著名的“二分查找”算法。从数据结构的角度,我们可以把字典视 为一个已排序的“数组”;从算法的角度,我们可以将上述查字典的一系列操作看作“二分查找”。 例二:整理扑克。我们在打牌时,每局都需要整理手中的扑克牌,使其从小到大排列,实现流程如图 1‑2 所 示。 第 1 章 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你 迈入数据结构与算法的知识殿堂。 1.2 算法是什么 1.2.1 算法定义 算法(algorithm)是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版213 10.1 二分查找 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 10.2 二分查找插入点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 10.3 二分查找边界 . 1. 和步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 查字典这个小学生必备技能,实际上就是著名的“二分查找”算法。从数据结构的角度,我们可以把字典视 为一个已排序的“数组”;从算法的角度,我们可以将上述查字典的一系列操作看作“二分查找”。 例二:整理扑克。我们在打牌时,每局都需要整理手中的扑克牌,使其从小到大排列,实现流程如图 1‑2 所 示。 第 1 章 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你 迈入数据结构与算法的知识殿堂。 1.2 算法是什么 1.2.1 算法定义 算法(algorithm)是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版213 10.1 二分查找 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 10.2 二分查找插入点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 10.3 二分查找边界 . 和 步骤 2. ,直至找到拼音首字母为 ? 的页码为止。 图 1‑1 查字典步骤 查字典这个小学生必备技能,实际上就是著名的“二分查找”算法。从数据结构的角度,我们可以把字典视 为一个已排序的“数组”;从算法的角度,我们可以将上述查字典的一系列操作看作“二分查找”。 例二:整理扑克。我们在打牌时,每局都需要整理手中的扑克牌,使其从小到大排列,实现流程如图 1‑2 所 示。 第 1 章 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 � 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将 引导你迈入数据结构与算法的知识殿堂。 1.2 算法是什么 1.2.1 算法定义 「算法 algorithm」是在有限时间内解决特定问题的一组指令或操作步骤,它具有以下特性。0 码力 | 383 页 | 17.61 MB | 1 年前3
Comprehensive Rust(繁体中文)to_string(),看看是否仍可編譯。您認為我們可能會在哪裡遇到 問題? • 這個型別有多個「方法專屬」的傳回型別,例如 std::collections::hash_map::Keys。這些 型別經常會在 Rust 文件的搜尋結果中出現。請向學生展示這個型別的文件,以及可返回 keys 方 法的實用連結。 16.8 練習:計數器 在本練習中,您要使用非常簡單的資料結構並將其設為泛型。此結構會使用std::collections::HashMap and the data is freed. A destructor can run here to free up resources. 熟悉垃圾回收實作的學員會知道,垃圾回收器是從一組「根」開始尋找所有可存取的記憶體。Rust 的「單 一擁有者」原則也是類似的概念。 19.4 移動語意 An assignment will transfer ownership between variables: clone(); self.weights = hostnames.iter().map(|_| 1.0).collect(); } } Clone 的概念是要輕鬆找出堆積分配量的發生位置。請尋找.clone() 和 Vec::new 或 Box::new 等 其他字詞。 我們往往會使用借用檢查器「複製解決問題的方法」,稍後再回來試著將這些複製內容最佳化。 19.6 Copy 型別 雖0 码力 | 358 页 | 1.41 MB | 10 月前3
Comprehensive Rust(繁体中文) 202406to_string(),看看是否仍可編譯。您認為我們可能會在哪裡遇到 問題? • 這個型別有多個「方法專屬」的傳回型別,例如 std::collections::hash_map::Keys。這些 型別經常會在 Rust 文件的搜尋結果中出現。請向學生展示這個型別的文件,以及可返回 keys 方 法的實用連結。 16.8 練習:計數器 在本練習中,您要使用非常簡單的資料結構並將其設為泛型。此結構會使用std::collections::HashMap and the data is freed. A destructor can run here to free up resources. 熟悉垃圾回收實作的學員會知道,垃圾回收器是從一組「根」開始尋找所有可存取的記憶體。Rust 的「單 一擁有者」原則也是類似的概念。 19.4 移動語意 An assignment will transfer ownership between variables: clone(); self.weights = hostnames.iter().map(|_| 1.0).collect(); } } Clone 的概念是要輕鬆找出堆積分配量的發生位置。請尋找.clone() 和 Vec::new 或 Box::new 等 其他字詞。 我們往往會使用借用檢查器「複製解決問題的方法」,稍後再回來試著將這些複製內容最佳化。 19.6 Copy 型別 雖0 码力 | 356 页 | 1.41 MB | 1 年前3
Comprehensive Rust(日语) 202412Language Server Protocol(LSP)のサポート。 ここにはあまり時間をかけないでください。これらのポイントについては、後ほど詳しく説明します。 受講者にどの言語の経験があるかを尋ねてください。回答に応じて、Rust のさまざまな特徴を強調す ることができます: • C または C++の経験がある場合:Rust は借用チェッカーを介して実行時エラーの一部を排除し てくれます。それに加え、C - - - - - - - -' • String は Vec により実現されているため、容量と長さがあり、可変であればヒープ上の再割り 当てによって拡張できることを説明します。 • 受講者から尋ねられた場合は、システムアロケータを使用してメモリ領域がヒープから割り当 てられること、Allocator API を使用してカスタム アロケータを実装できることを説明してく ださい。 その他 unsafe 初期化され ていないメモリを指す Rust 参照を作成すると、未定義の動作となります(そのようなメモリを逆参照 する操作のみが UB になる C++ とは異なります)。 Pin について受講者から尋ねられた場合は、CXX が C++ データへの可変参照のために Pin を必要と する理由を説明します。つまり、C++ のデータには自己参照ポインタが含まれている可能性があるた め、Rust のデータのように移動することができません。0 码力 | 381 页 | 1.36 MB | 10 月前3
Rust 异步并发框架在移动端的应用 - 陈明煜Fusion of IO/CPU intensive IO & CPU 融合 Fusion of IO/CPU intensive 南向调度融合:异步并行迭代器 将数据容器内的数据进行递归二分,对左 半和右半分别生成一个异步任务。最终对 单个数据执行用户业务逻辑 IO & CPU 融合 南向调度融合 IO & CPU 通过设置不同优先级,进 入不同线程池调度 线程池根据负载监控(任务平均等待0 码力 | 25 页 | 1.64 MB | 1 年前3
共 8 条
- 1













