アルゴリズムとデータ構造
30 件の記事
オープンアドレスハッシュテーブルとスイステーブル
オープンアドレス法とスイステーブルを解説。衝突解決の手法や、キャッシュ効率の高いハッシュテーブル設計のポイントを紹介します。
スライディングウィンドウの実装|尺取り法をGoで書く
スライディングウィンドウアルゴリズムの実装を解説。固定・動的ウィンドウサイズ、配列の部分和を検索するユースケース(レートリミッター等)、ウィンドウをスライドさせる処理の流れをGoコードで紹介します。
2分探索木の探索パターンを図解で理解する
2分探索木の探索パターンを解説。DFS(先行順・中間順・後行順)、BFS、一筆書き法による走査で木構造の走査順序をマスターする実践ガイドです。
尺取り法とは|計算量を落とすアルゴリズムを図解
尺取り法(Two Pointer Technique)とは何か。左右のインデックスを使った探索の仕組み、O(N²)からO(N log N)への計算量改善の仕組みをGoコードの例で解説します。
アルゴリズムとデータ構造 - ハッシュマップ
ハッシュマップの仕組みを解説。平均O(1)のアクセス、衝突解決のオープンアドレス法とチェイン法、Goでの基本的な実装を紹介します。
隣接リストと隣接行列の違い|グラフ表現の使い分け
隣接リスト(O(V+E)の空間・疎グラフに有利)と隣接行列(O(V²)の空間・O(1)の辺判定)を比較。有向・無向グラフのGo実装例とともにグラフの表現方法を解説します。
スタックとキューの実装
Go言語でスタック・キューをLIFO・FIFO実装、スライス・連結リストのパターン別に時間計算量O(1)で構築する方法
連結リストのランナーテクニック
連結リストの走査に役立つランナーテクニックについてまとめます。
アルゴリズムとデータ構造の基本の復習
「アルゴリズムとデータ構造の基本の復習」のまとめと読書メモ。重要なポイントと実践的な知見を整理します。
カウントソートの実装|O(n+k)の整列をGoで
カウントソートを実装で学ぶ。比較なしソート、要素カウント、累積和計算で線形時間効率化を実現するアルゴリズムの数学的考え方を解説します。
バックトラッキングの実装
バックトラッキングアルゴリズムを実装で学ぶ。制約満たし探索、重複なし組み合わせ、再帰処理、木構造による考え方でGoの実装例から理解を深める実践ガイドです。
アルゴリズム図鑑 増補改訂版 絵で見てわかる33のアルゴリズム
アルゴリズム図鑑 増補改訂版 絵で見てわかる33のアルゴリズム
アルゴリズムとデータ構造 - バブルソート
隣り合う要素を交換していく比較ベースのバブルソートを解説。O(n²)の計算量と、Goでの実装を紹介します。
アルゴリズムとデータ構造 - ヒープソート
二分ヒープ木を使ってO(n log n)でソートするヒープソートを解説。ヒープの構築、ルートの取り出し、Goでの実装を紹介します。
アルゴリズムとデータ構造 - 挿入ソート
配列をソート済みと未ソートに分け、1要素ずつ並べていく挿入ソートを解説。O(n²)の計算量とGoでの実装を紹介します。
アルゴリズムとデータ構造 - マージソート
分割統治法によるマージソートを解説。最悪O(n log n)の計算量、再帰的な分割とマージの手順、Goでの実装を紹介します。
アルゴリズムとデータ構造 - クイックソート
クイックソートを解説。平均O(n log n)・最悪O(n²)の計算量、ピボット選択、low/highへの分割、ランダム化したGo実装を紹介します。
アルゴリズムとデータ構造 - 選択ソート
最小要素を繰り返し探して所定の位置に入れ替える選択ソートを解説。O(n²)の計算量とGoでの実装を紹介します。
二分探索木(BST)とは|計算量とGoでの実装
二分探索木(BST)を解説。平均O(log n)の探索・挿入、DFS(先行順・中間順・後行順)とBFSによる走査を、GoでのBST実装例とともに紹介します。
アルゴリズムとデータ構造 - ヒープ
優先度付きキューを実現するmin-heap/max-heapの仕組みを解説。O(log n)の挿入・削除と、Goでのヒープ実装を紹介します。