关于算法复杂性测量

时间:2012-11-20 16:52:03

标签: logging big-o time-complexity

嘿,伙计们,我是新来的,所以我会尽力保持清醒。

在我目前的练习中,我要展示几种排序算法之间的时差。为了获得更精确的结果,我采用了几种不同大小的数组(排序,未排序)并得到了我的结果。我理解o,大O等的含义......所以我的问题是关于合并排序中theta的含义。为了更清楚我知道这个特定算法的复杂性是n * log(n),我不明白的是当我在2000的大小数组中获得结果例如15000 ms时会发生什么 - 如果我将它放在函数中n * log(n)不应该与系统提供的数字相同吗?还是我乳清了?

我希望我的问题可以理解,谢谢。

1 个答案:

答案 0 :(得分:1)

Big O旨在表示算法性能的趋势,因为它接近极限,而不表示任何特定N值的结果。例如,如果算法的性能可以用f(x)= 2x表示+ x ^ 2,然后它有x ^ 2的大O。

此外,Big O与硬件无关。

如果您想查看时间与Big O之间的关系,请使用增加的n值运行算法多次并绘制结果图表。您会看到时间遵循类似于Big O所描述的图表。

相关问题