私はダブルメタフォンアルゴリズムを見ています。アルゴリズムが該当する効率クラスを計算したいだけです。これはPythonです。これは私が見つけた中で最も読みやすいコードです。
私はアルゴリズムの分析に長けていませんが、このアルゴリズムのwhileループに最も時間がかかることはわかっています。この場合、プログラムは文字列内の各文字を左から右に調べます。
while pos <= last :
これにはnステップかかると思います。ここで、nは文字列の長さです。
ただし、アルゴリズムには、このループ内に多数の「if」および「elif」ステートメントがあります。それらが時間に大きな影響を与えるかどうかはわかりません。誰かが私にこれをステップスルーできますか?合計で時間効率を計算したいと思います。
私自身の質問に答えようとすると、最も効率的なのは長さ1の文字列であり、「if」ステートメントをできるだけ少なく入力する必要があると思います。一方、最悪のシナリオは、おそらく非常に長い文字列です。
ありがとうございました!