两者的时间复杂度都是对数级别,但O(log n)比O(log n^2)更好。因为O(log n)表示对数级别,而O(log n^2)可以化简为2 * O(log n),也是对数级别,但是常数系数变为2,执行速度会略微慢一些。
代码示例:
public void example() {
int n = 100;
// O(log n)
for(int i=1; i<=n; i*=2) {
System.out.println(i);
}
// O(log n^2)
for(int i=1; i<=n; i*=i) {
System.out.println(i);
}
}