Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Time complexity 几何级数平方和的复杂性_Time Complexity - Fatal编程技术网

Time complexity 几何级数平方和的复杂性

Time complexity 几何级数平方和的复杂性,time-complexity,Time Complexity,我的数据结构课程作业中有一个问题,我想到了两个算法来解决这个问题,一个是O(n^2)时间,另一个是: T(n)=3*n+1*1+2*2+4*4+8*8+16*16+…+logn*logn 我不确定哪一个更好 我知道从1到logn的几何级数之和是O(logn),因为我可以使用几何级数公式。但这里有几何级数的平方,我不知道如何计算。你可以将其改写为: log n * log n + ((log n) / 2) * ((log n) / 2) + ((log n) / 4) * ((log n) /

我的数据结构课程作业中有一个问题,我想到了两个算法来解决这个问题,一个是O(n^2)时间,另一个是:

T(n)=3*n+1*1+2*2+4*4+8*8+16*16+…+logn*logn

我不确定哪一个更好

我知道从1到logn的几何级数之和是O(logn),因为我可以使用几何级数公式。但这里有几何级数的平方,我不知道如何计算。

你可以将其改写为:

log n * log n + ((log n) / 2) * ((log n) / 2) + ((log n) / 4) * ((log n) / 4) ... + 1
如果用
x
替换(为了更容易理解)
log^2 n
,您将得到:

x + x/4 + x/16 + x/64 + ... + 1
你可以用公式来求级数的和,但是如果你不需要形式化,那么基本的逻辑就足够了。想象一下,你有1/4的馅饼,然后加上1/16的馅饼和1/64的馅饼,你可以清楚地看到,它永远不会到达整块,因此:

x + x/4 + x/16 + x/64 + ... + 1 < 2x
T(n) = O(3*n + log^2 n) = O(n)