複数ループによる全探索アルゴリズム探索基本ループによる全探索とは特定の条件を満たすようなものを発見する方法を探索アルゴリズムと言います。全探索は全ての場合を確認して、条件を満たすものが存在するかを判定します。全探索アルゴリズムの中でもループを使ったものは基本となっており、競技プログラミングなどでも良く出題されます。シンプルなものは、線形探索のように1重のループで表せるアルゴリズムです。これを応用して、2重にも3重にも重なったループで複雑な問題を解けるようになります。アルゴリズム例として2重のループで表現できる全探索アルゴリズムを説明します。j\)のすべての組み合わせを探索し、特定の条件を満たすかを確認します。\(i\)を0とする\(j\)を0とする\(i,j\)の値を見て、問題の条件を満たすか判定し、良ければ\(i,j\)を出力し終了する\(j\)が\(n\)以上なら5.へ。なければ\(j\)を1増やして3.へ\(j\)が\(n\)以上なら-1を出力して終了。なければ\(i\)を1増やして2.へこのアルゴリズムは、実際のプログラムではループ文をネスト(入れ子)にして書くことができるので、プログラム例を見たほうがわかりやすいでしょう。計算量ループ文の中身の処理、つまり問題の条件を満たすかどうかの判定に定数時間\(O(1)\)しかかからないとします。先ほどのアルゴリズムのように2重ループのとき(2変数があるとき)は、\(n^2\)通りの場合を調べるので、計算量は\(O(n^2)\)。3重ループのときは\(n^3\)通りの場合を全て調べるので\(O(n^3)\)になります。プログラム例\(n\)を10として、\(i+j=13\)を満たす\(i,j\)の組み合わせがあるかを判定し、その答えを出力させます。この組み合わせは何通りかありますが、一つでも分かればよく、なければ\(-1\)を2つ出力することとします。ソートアルゴリズムの中でも、最も基本的なアルゴリズムの一つです。マージソートは分割統治法を用いたソートアルゴリズムの1つです。挿入ソートとは、安定な内部ソートのアルゴリズムの一つです。コメントをキャンセルメールアドレスが公開されることはありません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。