個人的なメモ。
開発のアイディア用としてぼーっと眺める用
アルゴリズム | 用途 | 実務での利用例 | 出現頻度 |
---|---|---|---|
バブルソート | データを隣同士で比較して並び替え | 学習用/小規模データ | ほぼ書かない(学習用) |
クイックソート | ピボットを決めてデータを分割 | 高速ソート(DB, 配列) | ほぼ書かない(ライブラリ利用) |
マージソート | 分割して統合するソート | 大規模データの安定ソート | ほぼ書かない(ライブラリ利用) |
ヒープソート | ヒープ構造を利用した並び替え | ヒープベースの優先度管理 | まれに書く(優先度キュー) |
線形探索 | リストを先頭から順に探索 | 小規模データ | よく書く(小規模データ検索) |
二分探索 | ソート済みデータを半分に分割して探索 | データベース検索, AI探索 | よく書く(ソート済みデータ検索) |
幅優先探索 (BFS) | 近いノードから探索 | 経路探索、AI | よく書く(グラフ探索、最短経路) |
深さ優先探索 (DFS) | 深いノードから探索 | 迷路探索、パズル解決 | よく書く(探索、バックトラッキング) |
ダイクストラ法 | 最短経路を求める | Google Maps、ネットワーク | まれに書く(最短経路問題) |
最長共通部分列 (LCS) | テキストの類似性計算 | 遺伝子配列比較、検索エンジン | まれに書く(テキスト比較) |
編集距離 (Levenshtein) | テキスト間の変更回数を測定 | スペルチェック、自然言語処理 | まれに書く(スペルチェック、自然言語処理) |
KMP法 | 効率的な部分文字列検索 | パターンマッチング | まれに書く(パターンマッチング) |
BM法 | 後ろから探索することで高速化 | 検索エンジン | まれに書く(検索エンジン向け) |
ニューラルネットワーク | データの特徴を学習して予測 | 画像認識、音声認識 | ほぼ書かない(ライブラリ利用) |
決定木 | データをツリー構造で分類 | マーケティング分析 | ほぼ書かない(ライブラリ利用) |
ランダムフォレスト | 複数の決定木を組み合わせる | 機械学習の精度向上 | ほぼ書かない(ライブラリ利用) |
K-means | データをクラスタに分類 | データ分析、推薦システム | まれに書く(データ分析時) |
SHA-256 | ハッシュ値を計算 | パスワード管理、暗号化 | ほぼ書かない(ライブラリ利用) |
RSA暗号 | 公開鍵暗号方式 | データ通信の暗号化 | ほぼ書かない(ライブラリ利用) |
AES暗号 | 対称鍵暗号方式 | SSL、データ暗号化 | ほぼ書かない(ライブラリ利用) |
ハッシュテーブル | キーと値のペアを保存・検索 | キャッシュ、辞書検索 | よく書く(辞書型データ管理) |
Trie (Prefix Tree) | 文字列検索の最適化 | オートコンプリート, 検索エンジン | まれに書く(検索最適化) |
A* アルゴリズム | ヒューリスティックを使う最短経路探索 | ゲームAI, 経路探索 | まれに書く(ゲーム開発) |
DBSCAN | 密度ベースのクラスタリング | 異常検知、分散データの分析 | まれに書く(データ分析) |
Transformer | 文脈を理解するAIモデル | ChatGPTなどのNLPモデル | ほぼ書かない(ライブラリ利用) |
Argon2 | パスワードハッシュ | 認証システム | まれに書く(セキュリティ) |
フーリエ変換 | 信号を周波数成分に分解 | 音声処理、画像処理 | まれに書く(データ解析) |