为什么 O(2^log(n)) = O(n) 而不是指数 运行 时间?
Why O(2^log(n)) = O(n) and it is not a exponential run time?
为什么 O(2^log(n))
等同于 O(n)
?还有为什么这被认为是指数 运行 时间而不是多项式 运行 时间?
根据对数的底数,此语句有时为真有时为假。示例:
O(2lg n) = O(n),其中 lg 是二进制对数。
O(2log_4 n) = O(n1/2),其中 log_4 是底数的对数4.
O(2log_1.25992 n) = O(n3), 因为1.25992是2的立方根.
一般来说,O(2log n) 对于未指定的对数底数是等于 O(nk) 对于某些 k(即多项式时间)。
2 ^ log2(n) = n 表示 log2,也就是 log(n) 表示性能特征(大 O)的意思。
它是 O(n),因此是多项式(n 是多项式),而不是指数(2^n 将是指数)。
为什么 O(2^log(n))
等同于 O(n)
?还有为什么这被认为是指数 运行 时间而不是多项式 运行 时间?
根据对数的底数,此语句有时为真有时为假。示例:
O(2lg n) = O(n),其中 lg 是二进制对数。
O(2log_4 n) = O(n1/2),其中 log_4 是底数的对数4.
O(2log_1.25992 n) = O(n3), 因为1.25992是2的立方根.
一般来说,O(2log n) 对于未指定的对数底数是等于 O(nk) 对于某些 k(即多项式时间)。
2 ^ log2(n) = n 表示 log2,也就是 log(n) 表示性能特征(大 O)的意思。
它是 O(n),因此是多项式(n 是多项式),而不是指数(2^n 将是指数)。