Big Oh 是唯一用于衡量 STL 复杂性的符号吗
Is Big Oh the only notation used to measure complexity in STL
我已经开始阅读 C++ STL 并且还找到了一本书!。当我阅读复杂性时,它在选择算法和数据结构方面起着重要作用,我已经看到 Big Oh 符号仅用于不同的变量(O(n),O(log(n)。,)并进一步冲浪我发现
大哦表示 f(x) = O(g(x))--(big-oh) means that the growth rate of f(x) is asymptotically less than or equal to to the growth rate of g(x)
所以我的问题是,如果一个算法的时间复杂度总是等于 g(x) 的增长,为什么我们提到这个复杂度为 f(x)=O(n)[Big oh of n]
而不是使用 (theta),因为当我读到(theta) 表示 f(x) = Θ(g(x)) (theta) means that the growth rate of f(x) is asymptotically equal to the growth rate of g(x)
这里的符号可能是 (theta) 而不是 O(N) 不是吗?或者任何使用大的理由哦。
我们应该使用什么符号来衡量 space complexity.i 在那本书中没有看到任何关于 space 关于 STL 的复杂性的讨论。
参考:What is the difference between Θ(n) and O(n)?
So my question is, if an algorithms time complexity always results equal to the growth of g(x), why...
这不是真的。例如,排序的复杂度是 Big-oh n*log(n) 但在某些情况下可能会下降到线性 cases.It 在极少数情况下我们可以为算法提供 theta 近似值。
通常标准也会为函数提供大 O 保证,但我还没有看到任何 theta 限制。
And what notation should we use to measure the space complexity.
Big-oh 是函数增长的表示法,可用于 space 和时间复杂度。
一个原因是,如果实现者想出了一个(例如)线性算法而不是 O(n log n),如果函数被指定为 Θ(n log n).
why we mention that complexity as f(x)=O(n)[Big oh of n] rather than using (theta)
Theta 可能有助于描述特定算法的行为方式。但是 STL - 或者一般的 C++ 标准库 - 不是一个单一的实现,所以你无法描述它的行为方式。
STL 的描述是一组关于实现选择的算法必须如何表现的要求。复杂性是这些要求的一部分。要求论证的复杂性必须至少是某种东西是没有意义的。只有上限是相关的。所以Big-O用了。
And what notation should we use to measure the space complexity
大 O 表示法也可用于 space 复杂度。
我已经开始阅读 C++ STL 并且还找到了一本书!。当我阅读复杂性时,它在选择算法和数据结构方面起着重要作用,我已经看到 Big Oh 符号仅用于不同的变量(O(n),O(log(n)。,)并进一步冲浪我发现
大哦表示 f(x) = O(g(x))--(big-oh) means that the growth rate of f(x) is asymptotically less than or equal to to the growth rate of g(x)
所以我的问题是,如果一个算法的时间复杂度总是等于 g(x) 的增长,为什么我们提到这个复杂度为 f(x)=O(n)[Big oh of n]
而不是使用 (theta),因为当我读到(theta) 表示 f(x) = Θ(g(x)) (theta) means that the growth rate of f(x) is asymptotically equal to the growth rate of g(x)
这里的符号可能是 (theta) 而不是 O(N) 不是吗?或者任何使用大的理由哦。
我们应该使用什么符号来衡量 space complexity.i 在那本书中没有看到任何关于 space 关于 STL 的复杂性的讨论。
参考:What is the difference between Θ(n) and O(n)?
So my question is, if an algorithms time complexity always results equal to the growth of g(x), why...
这不是真的。例如,排序的复杂度是 Big-oh n*log(n) 但在某些情况下可能会下降到线性 cases.It 在极少数情况下我们可以为算法提供 theta 近似值。
通常标准也会为函数提供大 O 保证,但我还没有看到任何 theta 限制。
And what notation should we use to measure the space complexity.
Big-oh 是函数增长的表示法,可用于 space 和时间复杂度。
一个原因是,如果实现者想出了一个(例如)线性算法而不是 O(n log n),如果函数被指定为 Θ(n log n).
why we mention that complexity as f(x)=O(n)[Big oh of n] rather than using (theta)
Theta 可能有助于描述特定算法的行为方式。但是 STL - 或者一般的 C++ 标准库 - 不是一个单一的实现,所以你无法描述它的行为方式。
STL 的描述是一组关于实现选择的算法必须如何表现的要求。复杂性是这些要求的一部分。要求论证的复杂性必须至少是某种东西是没有意义的。只有上限是相关的。所以Big-O用了。
And what notation should we use to measure the space complexity
大 O 表示法也可用于 space 复杂度。