我读过《算法导论》中大o的定义,这本书并没有提到我的困惑。
根据它的定义,每个人都知道函数t(n)=3n属于o(n),我的困惑是,所有属于o(n)的函数是否都属于o(n^2)和o(n^3)以及o(n^4)和o(n^k)k>1,因为大o描述了上限,当n>=n0时,我发现正整数常数c和正整数常数n0满足0<=3n<=cn^2,如果答案是肯定的,为什么人们更喜欢用o(n)来描述t(n)=3n,如果它的定义是严肃的?
另外,这些符号(大O,大θ,大ω)在其他数学领域里用在哪里?
请张贴必要的参考资料或任何其他有关这方面的书籍

最佳答案

部分回答:你的理解是正确的,O(n)是O(n^k)的严格子集,k>1。
为什么我们更喜欢o(n):如果你问一些产品的价格(实际上是25美元),你会选择哪个答案:a)最多100美元,b)最多30美元。
说f(n)在O(n)中比说f(n^2)在O(n^2)中提供了更多关于f(n)的信息。
它还用在哪里?例如描述一个近似的误差项。

10-08 19:58