我无法计算这些for循环的时间复杂度:
for(int i=0; i<len; i++){
countOne++;
for(int j=i/2; j<len; j++){
countTwo++;
for(int k=i/2; k<len; k++){
countThree++;
}
}
}
我不明白如何计算2个最内层循环的时间复杂度。
答案 0 :(得分:3)
这听起来像是一个大问题。但是你应该在将来指定它。
countOne
递增len
次。i
,countTwo
增加len-i/2
次。 i
从0变为len-1
,因此countTwo
在len/2
和len
(或O(len))次之间按i
递增,或总计O(len 2 )。countThree
的类似故事,它增加了O(len 3 )次。因此整个算法都是O(len 3 )。
答案 1 :(得分:0)
您可以使用Sigma表示法进行有条理的处理: