这里是bubbleSort的输出值:
n = [10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000]
t = [9.368115451001358, 37.69119230900105, 85.12908719999905, 152.00092839799981, 242.2243322070026, 353.44638952199966, 487.97764714200093, 669.483528703, 873.3610439340009, 1091.256361742002]
我想测试所有常见的复杂度,例如N次方,对数等。我尝试将其拟合为多项式曲线,并使用kolmogorov-smirnov检验对其进行了测试,但未获得准确的答案。这可能是我的曲线拟合(numpy.polyfit)的问题。
我不需要代码(如果可以的话,可以的),但是想深入了解这个概念并找到解决问题的准确方法吗?
编辑:使用更多输入进行了测试,但是结果仍然不确定,并且与以前的结果完全相同
您的时序太短,无法期望有一个很好的近似值。几秒钟之内的所有事情很可能是恒定开销,一点点噪音和实际计算时间的一小部分的结果。
我通过zunzun.com上的开放源代码Python网站的“函数查找器”运行数据,该函数使用“差分进化”遗传算法来提供用于拟合非线性方程的初始参数估计。我设置函数查找器以查找具有四个或更少参数的方程式。在刚刚测试的340多个方程中,最好的似乎是Pareto型方程“ y = 1.0-(1.0 / pow(1.0 + a * x,b))+偏移”,参数a = -1.9034226324834123EE-03 ,b = -1.1000895110345629E-02,且Offset = -1.1123894127275866E-03,得出RMSE = 0.0005793和R平方= 0.9961