Algorithm O(N)算法是如何也是O(N^2)算法的?

Algorithm O(N)算法是如何也是O(N^2)算法的?,algorithm,big-o,complexity-theory,Algorithm,Big O,Complexity Theory,我在读关于大O符号的书 所以,任何O(N)的算法也是O(N^2) 这似乎让我困惑,我知道Big-O只给出上界 但是一个O(N)算法怎么可能也是一个O(N^2)算法呢 有没有这样的例子 我想不出有什么 谁能给我解释一下吗 定义: 一些函数f(x)是O(g(x))iff|f(x)|=x0 显然,如果用大O表示法来描述上界,那么O(n)也是O(n^2)是正确的。O(n)alghoritms是O(n^2)alghoritms的子集。同样,正方形是所有矩形的子集,但不是每个矩形都是正方形。因此,从技术上说

我在读关于大O符号的书

所以,任何O(N)的算法也是O(N^2)

这似乎让我困惑,我知道Big-O只给出上界

但是一个O(N)算法怎么可能也是一个O(N^2)算法呢

有没有这样的例子

我想不出有什么

谁能给我解释一下吗

定义:

一些函数
f(x)
O(g(x))
iff
|f(x)|=x0


显然,如果用大O表示法来描述上界,那么O(n)也是O(n^2)是正确的。O(n)alghoritms是O(n^2)alghoritms的子集。同样,正方形是所有矩形的子集,但不是每个矩形都是正方形。因此,从技术上说,O(n)alghoritm是O(n^2)alghoritm是正确的,但它并不精确。

对于O(n)的某个对象,它意味着对于大n,它小于函数f(n)=k*n对于某个固定k。但它也小于k*N^2。所以O(N)意味着O(N^2),或者更一般地说,O(N^m)表示所有m>1


*我假设N>=1,这确实是大N的情况。

“上界”意味着算法花费的时间不超过(即
O表示法可以天真地理解为“小于”

如果我告诉你x<4,那么显然x=n,所以这个定义仍然成立,因为x
所以一个O(n)算法就是一个O(n^2)算法,一个O(n^3)算法和一个O(n^n)算法等等。

如果一个算法的上界是
n
,那么它也必须是
n^2
的上界,这是一个更高的界。但是通常我们不会把它报告为
O(n^2)
如果我们能给它一个更紧的
O(N)
x<5
也意味着
x<25
。请检查这个线程:。它可能对你的研究很有帮助。@TimBiegeleisen事实上,你会将某个东西报告为O(N^2),即使它实际上是O(N),因为,例如,O(N^2)足够好并且证明它是O(N)要难多了。谢谢你的评论。但是我们在这里不试着对Big-O更精确一点吗。有没有什么例子说明O(N)可以是O(N^2)?@NadirLaskar O(N)总是O(N^2),你是从紧的角度考虑的bound@NadirLaskar不,big-O只是一个上界,这意味着我在答案中所描述的。O(n)总是O(n^2)。bigθ(Θ)如果你想要一个紧的(下>=和上>=的,这就是你想要的