Skip to content

アルゴリズムから始める Rust 入門

Rust を使ってアルゴリズムとデータ構造を TDD で学ぶシリーズです。

Rust は所有権モデルによるメモリ安全性と高パフォーマンスを両立するシステムプログラミング言語です。Box<T>Option<T> を活用した安全なデータ構造実装を通じて、現代的なシステム開発の基盤を学びます。

環境構築

# Nix 開発シェルに入る
nix develop .#rust

# テスト実行
cargo test

章構成

第 1 部: 基本

テーマ
第 1 章 基本的なアルゴリズム 3 値の最大値・中央値、条件判定、繰り返し処理、多重ループ
第 2 章 配列 配列の基本操作、基数変換、素数列挙
第 3 章 探索アルゴリズム 線形探索、二分探索、ハッシュ法

第 2 部: データ構造

テーマ
第 4 章 スタックとキュー スタックの概念と実装、キューの概念と実装
第 5 章 再帰アルゴリズム 再帰の基本、再帰と反復、再帰の応用

第 3 部: ソートと文字列

テーマ
第 6 章 ソートアルゴリズム バブルソート、選択ソート、挿入ソート、シェルソート、クイックソート、マージソート、ヒープソート、度数ソート
第 7 章 文字列処理 BF 法、KMP 法、BM 法、文字数カウント、逆順、回文判定

第 4 部: 高度なデータ構造

テーマ
第 8 章 リスト 単方向連結リスト、双方向連結リスト、配列カーソル版リスト
第 9 章 木構造 二分探索木、走査 3 種、最小ヒープ

Python 版との対応

概念 Python Rust
型宣言 型ヒント(任意) 静的型付き(コンパイル時検査)
テスト pytest #[cfg(test)] mod tests + cargo test
クラス class Foo: struct + impl
例外 raise Exception Result<T, E> / Option<T>
リスト list Vec<T>
辞書 dict HashMap<K, V>
None None Option::None
継承 クラス継承 トレイト + ジェネリクス
メモリ管理 参照カウント + GC 所有権モデル(自動 Drop)
ポインタ なし Box<T>Rc<T>
文字列 str String / &str
パッケージ モジュール Cargo ワークスペース(章ごとにクレート分割)

実装コード

実装コードは apps/rust/ にあります。