我从here读了Big-O符号,并且在计算复杂度方面几乎没有问题。因此,对于下面的代码,我计算了复杂度。需要你的投入相同。以下代码在内存方面的复杂程度如何?
private void reverse(String strToRevers)
{
if(strToRevers.length() == 0)
{
return ;
}
else
{
reverse(strToRevers.substring(1));
System.out.print(strToRevers.charAt(0));
}
}
如果存储器因子被认为是随后的上述代码的n个字符的字符串的复杂度是O(n^2)。解释是对于由n个字符组成的字符串,下面的函数将被递归地调用n-1次,并且每个函数调用创建一个单个字符的字符串(stringToReverse.charAT(0))。因此它是n *(n-1)* 2,转换为o(n^2)。让我知道如果这是正确的?
@John:对,它应该是n *(n-1)/ 2 – Cshah 2010-03-28 14:23:55