Comprehensive Rust(繁体中文)明常見的剖析模式,也就是傳遞資料切片。基礎資料本身一律不會複製。 如要完整剖析 protobuf 訊息,您必須瞭解欄位型別,這會依欄位編號建立索引,通常位於 proto 檔案 內。在本練習中,我們會在針對各欄位呼叫的函式中,將該資訊編碼為 match 陳述式。 我們將使用以下 proto: message PhoneNumber { optional string number = 1; optional string message Person { optional string name = 1; optional int32 id = 2; repeated PhoneNumber phones = 3; } proto 訊息會編碼為一系列的欄位,一個接著一個。每個欄位都以後方加上值的「標記」形式實作。此標記 含有欄位編號 (例如 Person 訊息的 id 欄位編號是 2) 以及有線型別,後者負責定義應如何從位元組資 透過以下模組支援 Rust: 模組型態 敘述 rust_binary 生成一個 Rust 執行檔。 rust_library 生成一個 Rust 函式庫,及其對應 的 rlib 和 dylib 變體。 rust_ffi 生成一個可被 cc 模組使用的 Rust C 函式庫,及其對應的靜態 和共享變體。 rust_proc_macro 生成一個 proc-macro Rust 函 式庫,類似於編譯器 擴充。0 码力 | 358 页 | 1.41 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 C++ 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 linearLogRecur(n / 2); for (int i = 0; i < n; i++) { count++; } return count; } 圖 2‑13 展示了線性對數階的生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 === File: worst_best_time_complexity.cpp === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ vectorrandomNumbers(int n) { vector nums(n); // 生成陣列 nums = { 1, 2, 3, ..., n } for (int i = 0; i < 0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 C# 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 LinearLogRecur(n / 2); for (int i = 0; i < n; i++) { count++; } return count; } 圖 2‑13 展示了線性對數階的生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 // === File: worst_best_time_complexity.cs === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ int[] RandomNumbers(int n) { int[] nums = new int[n]; // 生成陣列 nums = { 1, 2, 3, ..., n } for (int i = 0; i < n;0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Dart 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 linearLogRecur(n ~/ 2); for (var i = 0; i < n; i++) { count++; } return count; } 圖 2‑13 展示了線性對數階的生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 File: worst_best_time_complexity.dart === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ ListrandomNumbers(int n) { final nums = List.filled(n, 0); // 生成陣列 nums = { 1, 2, 3, ..., n } for (var i = 0; 0 码力 | 378 页 | 18.77 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Go 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 linearLogRecur(n/2) + linearLogRecur(n/2) for i := 0; i < n; i++ { count++ } return count } 圖 2‑13 展示了線性對數階的生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 // === File: worst_best_time_complexity.go === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ func randomNumbers(n int) []int { nums := make([]int, n) // 生成陣列 nums = { 1, 2, 3, ..., n } for i := 0; i < n;0 码力 | 385 页 | 18.80 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Kotlin 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 linearLogRecur(n / 2) + linearLogRecur(n / 2) for (i in 0..生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 === File: worst_best_time_complexity.kt === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ fun randomNumbers(n: Int): Array { val nums = IntArray(n) // 生成陣列 nums = { 1, 2, 3, ..., n } for (i in 0.. 0 码力 | 382 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Java 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 linearLogRecur(n / 2); for (int i = 0; i < n; i++) { count++; } return count; } 圖 2‑13 展示了線性對數階的生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 File: worst_best_time_complexity.java === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ int[] randomNumbers(int n) { Integer[] nums = new Integer[n]; // 生成陣列 nums = { 1, 2, 3, ..., n } for (int i = 0; i0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 JavaScript 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 linearLogRecur(n / 2); for (let i = 0; i < n; i++) { count++; } return count; } 圖 2‑13 展示了線性對數階的生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 // === File: worst_best_time_complexity.js === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ function randomNumbers(n) { const nums = Array(n); // 生成陣列 nums = { 1, 2, 3, ..., n } for (let i = 0; i < n;0 码力 | 379 页 | 18.78 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 TypeScript 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 linearLogRecur(n / 2); for (let i = 0; i < n; i++) { count++; } return count; } 圖 2‑13 展示了線性對數階的生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 File: worst_best_time_complexity.ts === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ function randomNumbers(n: number): number[] { const nums = Array(n); // 生成陣列 nums = { 1, 2, 3, ..., n } for (let i =0 码力 | 384 页 | 18.80 MB | 10 月前3
Hello 算法 1.2.0 繁体中文 Swift 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 linearLogRecur(n: n / 2) for _ in stride(from: 0, to: n, by: 1) { count += 1 } return count } 圖 2‑13 展示了線性對數階的生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 記號表示: // === File: worst_best_time_complexity.swift === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ func randomNumbers(n: Int) -> [Int] { // 生成陣列 nums = { 1, 2, 3, ..., n } var nums = Array(1 ... n) //0 码力 | 379 页 | 18.79 MB | 10 月前3
共 29 条
- 1
- 2
- 3













