Big O表示法的图表

时间:2012-03-22 19:23:29

标签: c algorithm data-structures

我想知道是否有任何工具/网站可以将某些运行时间绘制为图形。因为,无症状符号通常不是我想要的,即不想忽略常量。

例如,假设我有两个符号,例如:

1) O = (n* logn).
2) O = (n* logn * logn)/5.

很明显,第一个渐近更好。但我想看看他们的表现如何,第二个人开始变得更好。

一种图形符号,我可以输入不同的方程式并将它们绘制出来以查看它们的变化对于此目的非常有用。在我的搜索中,我发现this site他们有一些情节。我正在寻找类似的东西,但我也想输入我的方程式来绘制分析各种'n'值的表现。

3 个答案:

答案 0 :(得分:5)

一旦停止“忽略常量”,您就不再绘制“大O”符号,而只是执行标准XY图。因此,任何图表程序,甚至online graphing calculators,都可以让您显示这个,只需将“n”替换为“X”,您就可以获得正确的图表。

答案 1 :(得分:1)

thisthis会有帮助吗?

如果使用3d图示器,则可以使用其他尺寸(例如 y )作为常量替换。 这样您就可以将结果解释为:

当y大于5时,n * log(n)* log(n)/ y优于n * log(n),从n =(实际值)开始

此外,您可以忽略第三维。如果您的复杂性取决于2个变量,请使用它。

只需输入复杂性之间的差异。在这种情况下,忽略第三维并考虑 log(x)= ln(x),等式为:

z = x * ln(x) - x * ln(x)* ln(x)/ 5

你可以解释为 x * ln(x) z 为负时效率更高。

答案 2 :(得分:0)

如果你想看看他们如何执行那么你必须实现算法并在各种图表上执行它们。具有内存局部性和高速缓存未命中的现代处理器使真的难以提出一个可以给出合理估计的等式。

我可以向你保证,oyu不会衡量你的期望。