我有这个算法:
function f(arr, i, n) {
if (i == n - 1) {
return arr[i];
}
if (i == 0) {
return (arr[i] + f(arr, i + 1, n)) / n;
} else {
return arr[i] + f(arr, i + 1, n);
}
}
这是一种递归算法,但每次迭代只会调用一次。
我认为这可能是一个O(1^n)符号的算法,但如果是这样的话,
(1 ^ 1) = 1 (1 ^ 2) = 1 (1 ^ 3) = 1
那么它不就是O(1)吗?具有常数时间复杂度的Big O符号表示法?