我必须以渐近顺序安排n.logn,log(log(n))等几个函数,我不知道怎么做,有人可以帮帮我吗?
我知道这不是“做我的功课”论坛,但如果有人可以帮我这样做,我真的很感激!感谢。
答案 0 :(得分:1)
函数的顺序描述了函数的要求随输入大小的增加而变化的方式。因此log(log(n))将比n.log(n)更好地扩展(更有效),因为log(log(n))< n.log(n)表示n的所有值。在实践中,您还必须担心隐藏的常量,这可能会极大地影响算法的性能(即9.log(n)= log(n),其中9退出)。
可在此处找到有用的表:http://en.wikipedia.org/wiki/Big_O_notation#Orders_of_common_functions
答案 1 :(得分:0)
interesting reference让你开始......
- 常数时间 - O(1)(例如,确定整数(以二进制表示)是偶数还是奇数
- 对数时间 - O(log n)(例如二进制搜索)
- 二次时间 - O(n2)(例如冒泡排序;插入排序)
- 等...
答案 2 :(得分:0)
获取函数的比率并计算比率的限制,因为n变为无穷大。你可以使用L'Hopital的规则,如果它不是从比率中立即明显的话。
http://en.wikipedia.org/wiki/L%27Hôpital%27s_rule
然后你也可以进行数字检查,看看你的结果是否合理。
对于上面的例子,(log(log(n)))/(n log(n))的限制为零,因此n log(n)增长得更快!