2012-11-20 34 views
-1

嘿家伙我是新来的,所以我会尽量保持它的清晰。关于算法复杂度测量

对我目前的训练我对示范几种排序算法之间的时间差。为了更精确的结果,我使用了几个不同大小的数组(排序,未排序)并获得了我的结果。我了解o,大O等的含义......所以我的问题是关于theta在合并排序中的含义。更清楚我知道这个特定算法的复杂性是n * log(n),我不明白的是当我得到一个结果例如15000毫秒的大小2000数组 - 如果我把它在函数n * log(n)中我不应该得到系统提供的相同数量吗?或我是否乳清?

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

+4

描述你可能会收到在http://cs.stackexchange.com/一个更好的答案了一个曲线图。 – Zairja

回答

1

大O旨在表示的算法的性能的趋势,因为它接近极限,不表达的结果为N的任何特定值。例如,如果一个算法的性能可以被F(x)表示= 2x + x^2,那么它有x^2的大O.

此外,大O是独立于硬件。

如果你想看看你的时间和大O之间的关系,随着n值运行算法大量的时间和图表的结果。你会看到时间服从类似于大O.

+0

感谢您的回复。 – David

+0

我的理解是,它的含义是它只能接近极限,事实上我确定了结果,但是我的问题是关于theta - 如果极限来自顶部和底部,那么当我将n值放入函数中时它意味着什么?它对我来说有点难以理解。 – David