誰かが多項式時間、非多項式時間、および指数時間アルゴリズムの違いを説明できますか?
たとえば、アルゴリズムにO(n ^ 2)時間がかかる場合、どのカテゴリに属しますか?
回答:
これを確認してくださいて。
指数関数は多項式よりも悪いです。
O(n ^ 2)は、多項式の一種であり(指数が2に等しい特殊なケース)、指数よりも優れている2次カテゴリに分類されます。
指数関数は多項式よりもはるかに悪いです。関数がどのように成長するかを見てください
n = 10 | 100 | 1000
n^2 = 100 | 10000 | 1000000
k^n = k^10 | k^100 | k^1000
kが1.1のようなものより小さくない限り、k ^ 1000は非常に巨大です。同様に、宇宙のすべての粒子のようなものは、それを成し遂げるために、数兆億年の間、毎秒1,000億億回の操作をしなければならないでしょう。
私はそれを計算しませんでしたが、それは大きなことです。
以下は、アルゴリズムを分析する際の一般的なBig-O関数です。
(n =入力のサイズ、c =定数)
これは、いくつかの関数のBig-Oの複雑さを表すモデルグラフです。
乾杯:-)
グラフクレジットhttp://bigocheatsheet.com/
指数関数(MINIMAL ONE EXPONENTがパラメーターに依存している場合は、指数関数があります):
多項式(指数が一部の関数パラメーターに依存している場合は、多項式関数があります):