【发布时间】:2013-10-12 11:32:24
【问题描述】:
鉴于B 是一个整数,我无法理解这个时间复杂度O(sqrt(B))。
例如,如果我有一个函数...
int GetResult(int A, int B)
{
}
...而这个函数的时间复杂度为O(sqrt(B)),具体时间复杂度是多少?
对不起,如果这有点模糊......我真的不知道如何解释。
【问题讨论】:
-
这可能意味着计数器将循环到 sqrt(B)。例如,如果您想知道 B 是否是素数,那么您只需检查直到 Sqrt(B) 的可能因子。
-
基本上这意味着,如果你制作了一个随着 B 增加而运行函数所需时间的图表,那么从长远来看,该图表将非常类似于 B 的平方根的图表。更专业一点,这意味着存在一个常数 C,因此最终会出现一个点,第一个图的线总是 在
C * sqrt(B)的图的线之下。这有意义吗?
标签: c# algorithm big-o time-complexity square-root