鉴于O(sqrt(B))
是一个整数,我无法理解时间复杂度B
。
例如,如果我有一个功能......
int GetResult(int A, int B)
{
}
...而且这个函数的时间复杂度为O(sqrt(B))
,时间复杂度究竟是什么?
对不起,如果这有点模糊......我不确定如何解释。
答案 0 :(得分:4)
时间复杂度是函数运行时相对于其输入数据量的指示。
给出函数的n个数据项,
Big-O-Notation仅说明函数如何缩放,而不是实际需要多长时间。例如,Big-O-Notation忽略了常数因子。例如对某些数据迭代4次的函数(序列中的4x循环)具有O(4n),并且等于O(n)。
这个事实也说明了为什么O(log 10 n)等于O(log 2 n): log 10 n =(log 2 n)/(log 2 10)。由于(log 2 10)是常数因子,因此可以在Big-O-Notation中省略。因此,您可以选择您喜欢的任何日志,这并不意味着有关Big-O-complexity的任何差异。
当您有两个输入时,比如列表A和B,您可以使用两个变量来表示大小,例如n resp。米 具有复杂度O(n ^ 2 * log m)的函数表现如下:
答案 1 :(得分:0)
你的问题的答案取决于B.
如果B = O(n ^ 4),则O(sqrt(B))= O(n ^ 2)
如果B = O(n ^ 2),则O(sqrt(B))= O(n)
如果B = O(n),则O(sqrt(B))= O(n ^(1/2))