关于算法复杂度度量



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

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

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

Big O 旨在表示算法性能接近极限时的趋势,而不是表示 N 的任何特定值的结果。 例如,如果一个算法的性能可以用f(x) = 2x + x^2来表示,那么它就有x^2的大O。

此外,Big O是独立于硬件的。

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

最新更新