假設我們負責反轉字符串中的單詞。反轉字符串中的單詞的運行時間
所以,如果我們有:
瑪麗有隻小羊羔
我們會得到:
YRAM大新一個elttil BMAL
的實現的算法如下:
string wordsToSplit = "Mary had a little lamb";
string[] words = wordsToSplit.split(" ");
string wordsReversed = "";
foreach(string word in words)
{
string reversedWord = "";
foreach(char letter in word){
reversedWord = letter + reversedWord;
}
wordsReversed += " " + reversedWord;
}
這個psuedo代碼應該可以工作。然而這個特定算法的運行時間是多少?我認爲它會是O(n^2),其中N是字符串中的字數。但這似乎不正確...
東西告訴我這實際上是O(N)* O(M),其中'N'是單詞的數量,'M'是每個單詞中的字符數字。因此,在最壞的情況下,如果我們有類似於「a b c d e f g h i j k l m n o p」的情況,這可能是O(n^2)...
您認爲如何?這是竊聽我...
在你的代碼中,你永遠不會使用「currentIndex」。 – jrsala 2014-11-21 19:30:57
'yarm'不正確。 – 2014-11-21 19:31:36
'(字數)*(每個字中的字符數)==(字符串中的字符數)'。你不能少於這個,因爲你至少需要讀整個字符串。該公式中任何地方都沒有平方。 – 2014-11-21 19:38:12