求教时间复杂度的计算: O(1)+O(2)+...+O(N-1)+O(N)=? O(1)+...+O(N/4)+O(N/2)+O(N)=?

O(1)+O(2)+...+O(N-1)+O(N)=?
O(1)+...+O(N/4)+O(N/2)+O(N)=?
最好能解释得详细点。对时间复杂度的计算一直不太清楚。

第1个回答  2012-12-29
算法复杂度,其实很好算的:)

首先因为它这里的N代表无穷大,
所以这里要用N的最大项去计算

然后别的数值相对于N来说,常数是忽略不计的

另外相关的可以进行归纳函数的,要写成对应的函数
你这里就是一个等差求和公式,和一个等比求和公式,
但是为什么最后是O(1)?

然后写成函数后,就保留最大项,同时保留最大项的常数
然后再求个导就出来了……
第2个回答  2012-12-30
第一个:1+2 + ... + N = N(N+1)/2 于是去掉常量和低阶的得到O(N^2)
第二个:1 + ... + N/4 + N/2 + N = 2N,于是为O(N)本回答被提问者和网友采纳
相似回答