はじめに
アルゴリズムは、問題解決の手順や処理の流れを定義したものです。プログラミングやソフトウェア開発を行う上で、効率的かつ再現性のあるコードを書くために必要不可欠な知識です。
個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。
ここでは、自分用の備忘録として基本的なアルゴリズムの種類や特徴を簡潔にまとめておきます。
書こうと思ったきっかけ
実務や学習中に「アルゴリズムの違いって何だっけ?」と迷うことが多くなり、調べ直す機会が増えてきました。
理解を深め、今後効率よく活用するためにも、よく使うアルゴリズムを体系的に整理しておきたいと思いました。
よく使われる基本アルゴリズム
ソートアルゴリズム
- バブルソート:隣接する要素を比較して交換。処理は単純だが遅い。
- 選択ソート:最小値(最大値)を見つけて順に並べる。
- 挿入ソート:既に整列済みの部分に要素を挿入していく。
- クイックソート:分割統治法を利用。実用的で高速。
- マージソート:分割してからマージする。安定性あり。
探索アルゴリズム
- 線形探索:先頭から順に確認する。小規模データに向く。
- 二分探索:整列済みデータに対して中央を基点に探索。
グラフアルゴリズム
- 幅優先探索(BFS):キューを使って段階的に探索。
- 深さ優先探索(DFS):スタック(再帰)を使って深く探索。
- ダイクストラ法:最短経路問題を解くアルゴリズム。
- ワーシャルフロイド法:全点対最短経路。
その他の重要なアルゴリズム
- 動的計画法(DP):部分問題の解を再利用して効率化。
- 貪欲法(Greedy):局所的に最適な選択を繰り返す。
- 分割統治法(Divide and Conquer):問題を分割して統合する。
参考にした文献
まとめ
アルゴリズムは「どう処理するか」の視点で選択する必要があります。問題の特性やデータ量に応じて、適切な手法を使い分けることが重要です。今後も実装や実務を通じて、応用力を磨いていきたいと思います!