我想知道是否有一种算法渐近复杂度以不寻常的方式依赖于问题的大小,即不是作为幂/指数/对数的叠加?例如,像Θ(n ^(2 + sin n))?
答案 0 :(得分:0)
一般情况下 - 通常你想知道给定输入大小“n”的“最坏情况”,然后你可以将它与其他算法及其“最糟糕的情况”进行比较,以便让你深入了解你应该使用什么
因此,对于最简单的答案,O(n ^ (2 + sin n))
可以简单地计算机为 - 什么是窦的最大值 - 它是1
,它引导我们O(n ^ (2 + 1)) = O(n^3)
,因此你可以说n ^ (2 + sin n) = O(n^3)
。
然而,现实生活比这更复杂。例如 - 快速排序实际上有O(n^2)
,但在平均情况下它有O(n*log n)
。平均情况很难计算(你必须计算所有的排列)
在您的情况下 - 您在O(n)
和O(n^3)
之间进行振荡,因此,如果我可以使用您的算法并且还能够使用O(n^2)
另一个,我会选择原始一个是sin n < 0
,另一个是O(n^2)
一个