サイトアイコン ツナのエンジニアブログ

アルゴリズムの計算量

オーダ

このサイトではいくつかのアルゴリズムを紹介していますが、これはより効率の良い(実行速度の速い)アルゴリズムを見つける目的があります。
ここではアルゴリズムの実行効率の評価方法としてオーダ(計算量)という指標を学習します。

それぞれのアルゴリズムについてはこちら。
https://tunasalmon.com/2019/02/09/%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a0%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%be%e3%81%a8%e3%82%81-%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%ae%e8%80%83%e3%81%88%e6%96%b9%e3%82%92/

ソートや探索といったアルゴリズムは、処理するデータによって計算する量が変わります。
処理するデータ件数をnとした時、アルゴリズムの実行時間がn^2で表せる場合、計算量はO(n^2)となります。

オーダでは、実行時間が多項式である場合は、増加率の最も大きい項のみを計算量とします。
例えば、実行時間がn^2+2nで表せる場合であっても計算量はO(n^2)となります。

単純な計算ですが、各データに対して1回ずつ処理をするプログラムであればO(n)、各データに対してn-1回の処理を行う二重ループのプログラムならO(n^2)となります。

オーダの大小関係

以下がオーダの中身の代表的なすうちの大小関係です。
下に行くほど小さくなり、計算量の少ない上質なアルゴリズムであると言えます。

n!
2^n
n^2
n * log2(n)
n
log2(n)
1(定数)



(adsbygoogle = window.adsbygoogle || []).push({});

モバイルバージョンを終了