33

これはコーメンらによるアルゴリズム入門からの質問ですが、これは宿題の問題ではありません。その代わり独学です。

いろいろ考えてGoogleで検索しました。私が考えることができる答えは次のとおりです。

  • 別のアルゴリズムを使用してください。
  • 最良の入力を与える
  • より優れたコンピューターを使用してアルゴリズムを実行する

しかし、私はこれらが正しいとは思いません。アルゴリズムを変更することは、アルゴリズムのパフォーマンスを向上させることと同じではありません。また、より優れたコンピューターを使用すると速度が向上する可能性がありますが、アルゴリズムは優れていません。これは本の冒頭にある質問なので、見落としているのは簡単なことだと思います。

では、ほとんどすべてのアルゴリズムを変更して、最適な実行時間を実現するにはどうすればよいでしょうか?

4

7 に答える 7

5

システム自体の計算モデルにまさにそのアルゴリズムの命令を導入できれば、1 つの命令で問題を解決できます。

しかし、それが非常に非現実的なアプローチであることはすでにお気づきかもしれません。したがって、最適な実行時間を実現するために任意のアルゴリズムを変更する一般的な方法はほとんど不可能です。最大でできることは、さまざまな問題で見つかった一般的な冗長性のためにアルゴリズムに微調整を適用することです。

または、最良のケースの入力を使用して単純にすることもできます。しかし、それは実際にアルゴリズムを変更することではありません。実際、計算システム自体にアルゴリズムを導入することは、非常に非現実的ではなく、アルゴリズムの変更でもありません。

于 2015-07-23T07:20:28.507 に答える
0

いくつかの特別なケースの条件に合わせてアルゴリズムを変更できるため、入力がその条件を満たしていれば、事前に計算された答えを出力できます。一般に、最良の場合の実行時間は、アルゴリズムの適切な尺度ではありません。アルゴリズムが最悪の場合にどのように機能するかを知る必要があります。

于 2021-03-26T06:53:03.733 に答える