ser*_*0ne 0 c# algorithm big-o time-complexity square-root
O(sqrt(B))鉴于它B是一个整数,我无法理解这个时间复杂度。
例如,如果我有一个函数...
int GetResult(int A, int B)
{
}
Run Code Online (Sandbox Code Playgroud)
...这个函数的时间复杂度为O(sqrt(B)),时间复杂度到底是多少?
抱歉,如果这有点含糊……我真的不知道还能如何解释。
时间复杂度是函数运行时间相对于其输入数据量的指标。
给定函数的 n 个数据项,
Big-O-Notation 只说明函数如何扩展,但没有说明它实际需要多长时间。例如,大 O 符号忽略常数因子。例如,对某些数据迭代 4 次的函数(按顺序循环 4 次)的复杂度为 O(4n),等于 O(n)。
这个事实也说明了为什么 O(log 10 n) 等于 O(log 2 n):log 10 n = (log 2 n) / (log 2 10)。由于 (log 2 10) 是常数因子,因此在大 O 表示法中可以省略。因此,您可以选择您喜欢的任何日志,这不会意味着 Big-O-复杂性有任何差异。
当您有两个输入(例如列表 A 和 B)时,您可以使用两个变量来表示其大小,例如分别为 n。米。复杂度为 O(n^2 * log m) 的函数的行为如下: