O(n logstar(n))和O(n)之间是否存在真正的复杂度? 我知道O(n sqrt(logstar(n)))和其他类似的函数在这两个之间,但我的意思是不是由logstar(n)组成的东西。O(nlog * n)和O(n)之间?
回答
是的,有。最着名的例子是Ackermann inverse function α(n),其增长速度比log * n慢得多。它显示在不相交集森林数据结构的上下文中,其中每个操作的摊销成本为O(α(n))。
您可以将log * n看作您需要将日志应用到n以将该值降低到某个固定常量(例如2)的次数。然后,您可以将其推广到log ** n,这是您需要将log *应用于n以将值降至2的次数。然后可以定义log *** n,log **** n ,log ***** n等以类似的方式。通常将α(n)的值作为您需要将日志数** ... * n中的值减至2,因此其增长速度比迭代对数函数慢得多。
直观地说,你可以把日志的n为幂(重复乘法)的倒数,数* N为tetration(重复幂)的倒数,数** n的pentation(重复迭代幂次)的倒数,等等.Ackermann函数将n次幂的n阶泛化有效地应用于数n,所以它的逆矩阵对应于需要应用的指数级别有多高。这导致了令人难以置信的缓慢增长的功能。
我曾经见过的最滑稽的慢速增长函数在一个严肃的语境中使用是α *(n),您需要将阿克曼反函数应用到数字n以将其降到某些值固定不变。这是几乎不可思议的多大的输入,你必须把这个函数返回接近,例如10。如果你很好奇,the paper that introduced it is available here。
谢谢,我绝对会读这篇论文!播放树木非常酷! –
- 1. 代码O(nlog(n))的T(n)如何?
- 2. 你如何看出O(log n)和O(n log n)之间的差异?
- 3. 证明最大(O(f(n)),O(g(n)))= O(max(f(n),g(n))
- 4. 时间复杂度O(N日志(log n)的)+ N O(L)
- 5. 时间复杂度 - O(n^2)到O(n log n)搜索
- 6. 大O符号 - O(n日志(N))对O(的log(n^2))
- 7. 证明O(max {f(n),g(n)} = O(f(n)+ g(n))
- 8. 时间复杂度:O(logN)或O(N)?
- 9. 下面的函数是O(n)时间和O(1)空间,其中n = | A |?
- 10. 在渐近分析中,证明:O表示大O. O(f(n)+ g(n))= O(max {f(n),g(n)})
- 11. 在O(N)
- 12. 是log(n!)= O((log(n))^ 2)?
- 13. 找到O(1)的空间和O(n)的时间
- 14. 哪里可以找到O(n^2)和O(n)等的含义?
- 15. 大O和T(N)混淆
- 16. 计数no。 O(n)
- 17. O(n^2)中是O(mn)吗?
- 18. O(m + n)或O(mlgn)更好
- 19. 复杂性理论中的O(lg(n))* O(lg(n))
- 20. 复杂度O(log(n))是否等于O(sqrt(n))?
- 21. 在JavaScript中将O(n^3)更改为O(n^2)
- 22. 为什么两个O(N)方法被认为是O(N)?
- 23. 为什么TreeSet迭代O(n)而不是O(n * logn)?
- 24. O(N)查找,但O(日志(N))的比较排序列表
- 25. 堆性能低下。 O(n)而不是\t O(日志n)
- 26. 如何确定的时间复杂度为O(M + N)或O(Math.max(M,N))
- 27. 如何发音Θ(n),O(n)和Ω(n)?
- 28. 图形搜索O(log(N)(N + M)
- 29. O(n)的运行时间算法
- 30. 在O(n)时间执行连接?
1