您好我想找出这个算法的大O.
我认为它是n ^ 2,但因为每次我不确定时,子循环的大小都在缩小。
for(int i= 0; i < SIZE; i++){
for(int j = i; j < SIZE; j++)
{
//Code here
}
}
答案 0 :(得分:2)
是的,如果SIZE = O(n)并且(此处的代码)的复杂度是常数,那么它是O(n ^ 2)......
你可以做数学:对于i的固定值,内循环执行Size-i次,因此内循环的执行总数是sum_ {i = 0} ^ {size-1}( size -i)= size ^ 2 - sum_ {i = 0} ^ {size-1} i = size ^ 2 - 1/2 size *(size-1)= O(size ^ 2)
答案 1 :(得分:1)
有一种使用Sigma表示法的方法足够精确: