From 9339dbf9b37467b3ff3986416ee71a4f742de520 Mon Sep 17 00:00:00 2001 From: Night Cruising <77157236+night-cruise@users.noreply.github.com> Date: Wed, 6 Sep 2023 16:58:20 +0800 Subject: [PATCH] feat: add rust docs for chapter computational complexity (#723) --- .../space_complexity.md | 54 ++++++++++++++++++- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/docs/chapter_computational_complexity/space_complexity.md b/docs/chapter_computational_complexity/space_complexity.md index 8a7311dc4..bb952edf9 100755 --- a/docs/chapter_computational_complexity/space_complexity.md +++ b/docs/chapter_computational_complexity/space_complexity.md @@ -260,7 +260,35 @@ === "Rust" ```rust title="" + use std::rc::Rc; + use std::cell::RefCell; + + /* 结构体 */ + struct Node { + val: i32, + next: Option>>, + } + /* 创建 Node 结构体 */ + impl Node { + fn new(val: i32) -> Self { + Self { val: val, next: None } + } + } + + /* 函数 */ + fn function() -> i32 { + // 执行某些操作... + return 0; + } + + fn algorithm(n: i32) -> i32 { // 输入数据 + const a: i32 = 0; // 暂存数据(常量) + let mut b = 0; // 暂存数据(变量) + let node = Node::new(0); // 暂存数据(对象) + let c = function(); // 栈帧空间(调用函数) + return a + b + c; // 输出数据 + } ``` === "C" @@ -406,7 +434,13 @@ === "Rust" ```rust title="" - + fn algorithm(n: i32) { + let a = 0; // O(1) + let b = [0; 10000]; // O(1) + if n > 10 { + let nums = vec![0; n as usize]; // O(n) + } + } ``` === "C" @@ -621,7 +655,23 @@ === "Rust" ```rust title="" - + fn function() -> i32 { + // 执行某些操作 + return 0; + } + /* 循环 O(1) */ + fn loop(n: i32) { + for i in 0..n { + function(); + } + } + /* 递归 O(n) */ + void recur(n: i32) { + if n == 1 { + return; + } + recur(n - 1); + } ``` === "C"