アルゴリズム (Algorithm)
問題を解決するための手順やプロセスを定義したもの。
データ構造 (Data Structure)
データを効率的に格納し、操作するための形式。
計算量 (Time Complexity)
アルゴリズムの効率性を示す指標で、アルゴリズムが入力サイズに対してどの程度の時間を要するかを表します。ビッグオー記法で表記されます(例: O(n), O(log n))。
空間計算量 (Space Complexity)
アルゴリズムの実行時に必要なメモリの量
線形探索 (Linear Search)
要素を先頭から順番に探索するアルゴリズム。
二分探索 (Binary Search)
ソート済みのリストに対して、真ん中の要素を基準に半分ずつ絞り込んで探索するアルゴリズム。
ソートアルゴリズム (Sorting Algorithm)
リストや配列の要素を特定の順序に並び替えるアルゴリズム。例:バブルソート、クイックソート、マージソートなど。
再帰 (Recursion)
関数が自分自身を呼び出すことで、繰り返し処理を行う手法。
ダイクストラ法 (Dijkstra's Algorithm)
グラフ内の最短経路を見つけるアルゴリズム。
動的計画法 (Dynamic Programming)
問題を小さな部分問題に分割し、部分問題の結果を再利用することで効率的に解く手法。
スタック (Stack)
LIFO(Last In, First Out)でデータを格納するデータ構造。
キュー (Queue)
FIFO(First In, First Out)でデータを格納するデータ構造。
ハッシュテーブル (Hash Table)
キーと値のペアを効率的に格納し、アクセスするためのデータ構造。
グラフ (Graph)
ノードとエッジで構成されるデータ構造。隣接行列や隣接リストで表現されます。
ヒープ (Heap)
優先度付きキューを実装するためのデータ構造。
分割統治法 (Divide and Conquer)
問題を小さな部分問題に分割し、それぞれを解決することで全体を解く戦略。
貪欲法 (Greedy Algorithm)
その場で最も最適な選択を繰り返し行うことで、最適解を求める手法。
バックトラッキング (Backtracking)
仮の解を進め、条件が合わなければ元に戻って他の道を探す方法。