Skilore

アルゴリズムとデータ構造

アルゴリズムとデータ構造はプログラミングの基盤。計算量分析、ソートアルゴリズム、木構造、グラフアルゴリズム、動的計画法、競技プログラミングのテクニックまで体系的に解説する。

5 セクション
24 ガイド

01Complexity

02Data Structures

04

配列と文字列 — 動的配列・文字列アルゴリズム・二次元配列の完全ガイド

プログラミングの最も基本的なデータ構造である配列と文字列を深く理解し、動的配列の仕組み、文字列操作の計算量、二次元配列の走査パターン、Two Pointers・Sliding Window 等の頻出技法までを体系的に学ぶ。

05

連結リスト — 単方向・双方向・循環・フロイドのアルゴリズム

配列と対をなす線形データ構造「連結リスト」の各種バリエーションと、

06

スタックとキュー — 実装・応用・優先度キュー 完全ガイド

LIFO / FIFO の原理に基づくスタックとキューを深く理解し、括弧マッチ、BFS、単調スタック、優先度キューなどの応用を体系的に学ぶ。

07

ハッシュテーブル — ハッシュ関数・衝突解決・ロードファクター

平均 O(1) のキー検索を実現するハッシュテーブルの内部構造、衝突解決戦略、性能チューニングを学ぶ。

08

木構造 — 二分木・BST・AVL/赤黒木・B木・Trie

階層的なデータを表現する木構造の各種バリエーションを学ぶ。二分探索木の基本から平衡木、B木、Trie まで体系的に解説する。

09

ヒープ — 二分ヒープ・ヒープソート・優先度キュー実装

効率的な最大/最小値の取得を可能にするヒープの構造、ヒープソート、優先度キューの実装を学ぶ。

10

グラフ — 表現方法・隣接リスト/行列・重み付きグラフ

ネットワーク、依存関係、地図など多様な関係を表現するグラフの基本概念と、各表現方法の特徴を学ぶ。

03Algorithms

11

ソートアルゴリズム

データを特定の順序に並べ替える基本アルゴリズム群を、計算量・安定性・実装の観点から体系的に理解する

12

探索アルゴリズム

データ集合から目的の要素を効率的に見つけ出す手法を、線形探索・二分探索・補間探索・指数探索・三分探索の多角的な視点で理解する

13

グラフ走査アルゴリズム

グラフの頂点と辺を体系的に訪問するBFS・DFS・トポロジカルソートを理解し、実装と応用パターンを習得する

14

最短経路アルゴリズム

重み付きグラフにおける最短経路問題を、Dijkstra・Bellman-Ford・Floyd-Warshallの3大アルゴリズムで解く手法を体系的に理解する

15

動的計画法(Dynamic Programming)

重複する部分問題を効率的に解くための設計手法を、メモ化・ボトムアップ・代表的問題を通じて体系的に理解する

16

貪欲法(Greedy Algorithm)

各ステップで局所的に最適な選択を繰り返すことで、全体の最適解を効率的に求める設計手法を理解する

17

分割統治法(Divide and Conquer)

問題を小さな部分問題に分割し、再帰的に解いて統合する設計手法を、マージソート・大数乗算・最近接点対・Strassen 行列乗算を通じて理解する

18

バックトラッキング

解の候補を体系的に探索し、制約を満たさない分岐を早期に枝刈りして効率化する手法を、N-Queens・数独・順列生成・グラフ彩色・ナイトツアーなど多角的な例題で深く理解する

04Advanced

05Practice