我有一个树遍历算法,它通常在 O(b m ) 中运行,其中 b 是分支因子,m 是最大深度。
使用迭代深化,这个算法一遍又一遍地运行,m 次以增加深度:
O(b m ) = b⁰ + b¹ + b² + ... + b m
基于我对时间复杂度的有限理解,我们采用最大元素,因为随着时间的推移,它是最重要的元素,因此该元素将是 b m,其中 m 是达到的最大深度。
因此,有了这些知识,我会得出结论,迭代深化算法也在 O(b m ) 中运行。
但是我很难理解,从逻辑的角度来看,无论算法是在深度 m 处运行一次,还是在深度 m 处运行一次,树遍历如何具有完全相同的时间复杂度。
b m本质上小于 Σ k=0,..,m b k。因此迭代加深的时间复杂度不应该更高吗?
还是有什么我不明白的地方?