Logging 关于算法复杂性度量
嘿,伙计们,我是新来的,所以我会尽量保持清楚 在我当前的练习中,我将演示几种排序算法之间的时间差异。为了得到更精确的结果,我使用了一些不同大小的数组(排序、未排序)并得到了结果。我理解o的意思,大o,等等。。。所以我的问题是关于合并排序中θ的意义。更清楚地说,我知道这个特定算法的复杂性是n*log(n),但我不明白的是,当我在一个2000大小的数组中得到一个结果(例如15000毫秒)时会发生什么-如果我把它放在函数n*log(n)中,我不应该得到与系统提供的相同的数字吗?或者说我是在逃避Logging 关于算法复杂性度量,logging,big-o,time-complexity,Logging,Big O,Time Complexity,嘿,伙计们,我是新来的,所以我会尽量保持清楚 在我当前的练习中,我将演示几种排序算法之间的时间差异。为了得到更精确的结果,我使用了一些不同大小的数组(排序、未排序)并得到了结果。我理解o的意思,大o,等等。。。所以我的问题是关于合并排序中θ的意义。更清楚地说,我知道这个特定算法的复杂性是n*log(n),但我不明白的是,当我在一个2000大小的数组中得到一个结果(例如15000毫秒)时会发生什么-如果我把它放在函数n*log(n)中,我不应该得到与系统提供的相同的数字吗?或者说我是在逃避 我希望
我希望我的问题是可以理解的,谢谢。大O表示算法性能接近极限时的趋势,而不是表示任何特定值N的结果。例如,如果一个算法的性能可以用f(x)=2x+x^2表示,那么它的大O为x^2 此外,BigO是独立于硬件的
如果您想查看时间与大O之间的关系,请多次运行该算法,增加n值,并绘制结果图表。你会看到时间跟一个类似于大O所描述的图表一样。你可能会在中得到一个更好的答案。我理解它的意思是它只能接近极限,我确实绘制了结果图,但我的问题是关于θ-如果极限是从上到下的,当我把n值放在功能?这对我来说有点难理解。