如何计算以下表达式的大 O 符号?

How to calculate the Big O notation of the following expression?

我想为以下表达式找到大 O 表示法。


可以表示为 [其中1<=l<=alpha,beta是整数向量]

如果我错了请纠正我....

计算该总和的算法为:

BigInteger sum = BigInteger.ZERO;
for (int i = 1; i <= alpha; i++) {
     sum = sum.add(BigInteger.ONE.shiftLeft(beta[i]));
}

现在使用 BigInteger 进行 N 位移位或 N 位加法的复杂度为 O(N)

因此,上述计算的总体复杂度将受到 alpha * min(beta[i])alpha * max(beta[i]) 的限制。

此外,实际复杂度还取决于 顺序 beta[i] 值。

如果alphabeta值足够小,可以使用原始整数运算,那么复杂度是O(alpha),因为加法和移位都是O(1) 操作。


另一方面,如果您想要该函数的复杂性 class,它将类似于 O(alpha * 2 ^ (max(beta[i])))。请注意,这实际上是标量和矢量的函数,我不确定这在数学上是否合理。 (向量趋于无穷大是什么意思?)