最善の方法は、アルゴリズムを詳しく調べ、各ステップを分析して、平均および最悪の場合のランタイム クラスを計算することです。
それが不可能な場合は、比較的小さい数値でアルゴリズムを実行し、それらを互いに比較できます。ランタイムがいずれかのパラメーターの順序で指数関数的である場合、10 または 20 の違いがあっても、それは露骨に明らかなはずです。単にランタイムをプロットすると、
- x = 10 および範囲内の y(50)
- y = 10 および範囲内の x (50)
- 範囲内の x (50)、y=x
大まかなアイデアが得られるはずです。ランタイムが大きくなったとき、たとえば のランタイムの 10000 倍を超えたときに、早期に中止できます(1,1)
。
これで大まかな見積もりが得られるはずですが、正確ではなく (テスト データが誤って特定のパターンに従い、適切なケースにヒットする可能性があります)、十分でもないことを十分に認識しておく必要があります (関連する要因は非常に小さい可能性があります。 、言う、x + 0.0001 * 1.05^y
)。幸いなことに、多くの場合、指数アルゴリズムの底は 1 よりかなり大きくなります。
Python では、このtimeit
モジュールを使用してランタイムを正しく測定できます。