有时我看到Θ(n)带有奇怪的Θ符号,中间有一些东西,有时只有O(n).这只是打字的懒惰,因为没有人知道如何输入这个符号,或者它是否意味着不同的东西?
所以给出以下程序:
这个程序的时间复杂度是O(0)吗?换句话说,是0 O(0)?
我想在一个单独的问题,回答这个问题将阐明一些轻这个问题.
编辑:这里有很多好的答案!我们都同意0是O(1).问题是,0 O(0)也是?
有人能给我一个具有平方根(n)时间复杂度的算法的例子.平方根时间复杂度甚至意味着什么?
可能重复:
是否有任何O(1/n)算法?
这只是因为没有特别的原因突然出现在我脑海中,我想这是一个奇怪的问题.是否有任何已知的算法或问题实际上通过更大的输入更容易或更快地解决?我猜测,如果有,那就不会出现像突变或排序这样的事情,那就是决策问题.也许有一些问题,有大量的输入可以很容易地决定一些东西,但我无法想象.
如果没有负面复杂性这样的东西,是否有证据证明不存在?或者只是没有人找到它?
我知道它们两者的定义,但有时我看到O(1)和其他时间Θ(1)写在教科书中的原因是什么?
谢谢.
我错过了引入big-O的课程,认为这是非常直接的.然而,当n变得非常小时,教师似乎还在说一些关于O(n)偏离函数的东西?我无法在书中的任何地方找到这个.有人可以开导我吗?我们对O(n)的探索一直是在排序算法的背景下,如果它具有任何意义.
谢谢基因
编辑:感谢帮助人员,它一直很有启发性.我有一个后续问题.是否有一种相对简单的数学方法来确定n对于O(n)来说太小的点?
相关问题
这个问题有很多有趣的讨论让我想知道我们是否对算法设置了一些门限,是否会改变Big-O的运行时间复杂度?例如:
void someAlgorithm(n) {
if (n < SOME_THRESHOLD) {
// do O(n^2) algorithm
}
}
Run Code Online (Sandbox Code Playgroud)
它是O(n 2)还是O(1).
可能重复:
是否有任何O(1/n)算法?
您的代码是否可能比O(1)小O?