当循环计数器不相互依赖时,总是可以从内部向外进行工作。
最里面的循环始终花费时间O(n),因为无论j和i的值是多少,它都会循环n次。
当第二个循环运行时,它将运行O(n)次迭代,每次循环执行O(n)都会运行最里面的循环。这需要时间O(n 2)。
最终,当外循环运行时,它每次迭代都会执行O(n 2)工作。它也运行O(log
n)次迭代,因为它的运行次数等于达到1之前必须将n除以2的次数。因此,总功为O(n 2 log n)。
通常,您不能仅将多个循环相乘,因为它们的界限可能相互依赖。但是,在这种情况下,由于没有依赖性,因此可以将运行时间乘以。希望上面的推理能说明为什么会这样-
这是因为,如果您从内而外地思考每个循环能完成多少工作以及执行了多少次,运行时最终会成倍增加。
希望这可以帮助!



