我正在查看Double Metaphone算法。我只是想計算算法的效率等級。這裏在Python。這是我能找到的最具可讀性的代碼。雙metaphone算法的最佳/最差/平均時間效率是多少?
我不是一個很好的分析算法的時間,但我知道這個算法中的while循環應該花費最多的時間。在這種情況下,程序會在一個字符串的每個字符,從左至右依次爲:
while pos <= last :
我會假設,這將需要n步,其中n是字符串的長度。
但是,該算法在這個循環中有很多'if'和'elif'語句;我不知道他們是否會顯着影響時間。任何人都可以通過這個指導我?我想通過求和來計算時間效率。
爲了試圖回答我自己的問題,我認爲它的最佳效率是長度爲1的字符串,它必須輸入儘可能少的'if'語句。另一方面,最壞的情況可能只是一個非常長的字符串。
謝謝!
它看起來像你不小心省略了你所指的代碼。 – 2012-04-28 23:01:28
@David它在鏈接,它真的很長,所以可能會更好,它不被張貼 – dfb 2012-04-28 23:03:57
起初我讀這個作爲「雙比喻算法」,現在我只是失望,可能是什麼 – 2012-04-28 23:10:19