算法的时间复杂度

算法的时间复杂度

我正在研究一个问题,在每次迭代中,a都会被k的值递减在每次迭代中k也加倍。例如:
A=30->29-->27-->23-->15-->0
增量=1-->2-->4-->8-->16
如何评估算法的时间复杂度?我想这一定与O(logN)有关,因为delta加倍了,但不知道如何直观/数学地得出结论。

最佳答案

n个减量的总大小是2^n-1(通过归纳证明),因此从a开始,需要ceil(log2(a+1))的减量达到0。

10-06 02:06