假设我们负责反转字符串中的单词。反转字符串中的单词的运行时间
所以,如果我们有:
玛丽有只小羊羔
我们会得到:
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