探索順列

\(n!\)通りの全探索を行いたい時に順列が用いられます。

順列(permutation)とは、n個のものを順番に並べるのは何通りあるかを考える問題です。n個全てを区別できるなら、\(n!\)通りの並べ方があります。

探索幅優先探索, グラフ, キュー

幅優先探索とは、全探索アルゴリズムの一種です。最短経路を求める際に使用される基本的なアルゴリズムです。

木などのグラフやグラフと同一視できるものを探索する際に良く使われます。深さ優先探索と似ていますが、幅優先探索は始めの状 ...

探索深さ優先探索, スタック, 再帰関数, 全探索

深さ優先探索とは、全探索アルゴリズムの一種です。木などのグラフやグラフと同一視できるものを探索する際に良く使われます。

幅優先探索(BFS)と似ていますが、深さ優先探索は末端に到達するまで「深く」探索してから、他のノードの ...

探索基本

二分探索とは

二分探索とは、ソート済みである配列の中から、目的の値が存在するかを調べる探索アルゴリズムです。高速でわかりやすいため非常に良く使われます。

線形探索はソートしていない配列でも探索することができました。二分探索は ...

探索再帰関数, bit演算

再帰関数・bit演算を用いた全探索とは

再帰関数やbitを上手く用いると、それぞれに対して「使うか」「使わないか」の2通りがあるような、\(2^n\)通りの場合を全探索することができます。
つまり、集合\(\{0,1,2,3,& ...

探索基本

ループによる全探索とは

特定の条件を満たすようなものを発見する方法を探索アルゴリズムと言います。全探索は全ての場合を確認して、条件を満たすものが存在するかを判定します。

全探索アルゴリズムの中でもループを使ったものは基本とな ...

探索入門

線形探索とは

線形探索とは、入力を数値\(n\)とした時に、それがあるリストや配列に入っているかどうかを判定するためのアルゴリズムです。

1つのループ文を使うことでプログラムすることができます。

アルゴリズム\(i\) ...