如果doIt这个算法的复杂度为n2,那么计算下面这个程序段的时间代价: int i=1; wh
循环控制变量i从1增加到n循环体只能执行[log2n]-1次所以该程序段总的时间代价为:
T(n)=1+log2n+(log2n-1)(n2+1)+1
=n2log2n+2log2n-n2+1
=O(log2n)
循环控制变量i从1增加到n,循环体只能执行[log2n]-1次,所以该程序段总的时间代价为:T(n)=1+log2n+(log2n-1)(n2+1)+1=n2log2n+2log2n-n2+1=O(log2n)