Ant*_*t's 3 c# java sorting groovy
这可能是适合所有编程语言的问题(我想!).我在Groovy中有这样的代码:
def a =['asd','sdf','sdr','asd','tty','gfdg','dfgt','rfgsf','rfas','asddre','asdfr','adsrf']
start = System.currentTimeMillis()
println a.sort()
end = System.currentTimeMillis()
println "Sort in-built is ${end-start}"
def InsertionSort(def b = [])
{
for(out=1;out<b.size();out++)
{
temp = b[out]
in1 = out;
while(in1>0 && b[in1-1]>=temp)
{
b[in1] = b[in1-1]
--in1
}
b[in1] = temp;
}
return b
}
start = System.currentTimeMillis()
c = InsertionSort(a)
end = System.currentTimeMillis()
println "Insertion Sort is ${end-start}"
println c
Run Code Online (Sandbox Code Playgroud)
显然,上面的代码检查内置sort函数的运行时间和我的函数名称,InsertionSort该函数也执行相同的工作sort.
现在我在不同的时间运行相同的代码.说当我在8:34:33 pm执行代码时,我得到输出为:
[adsrf, asd, asd, asddre, asdfr, dfgt, gfdg, rfas, rfgsf, sdf, sdr, tty]
Sort in-built is 4
Instertion sort is 6
[adsrf, asd, asd, asddre, asdfr, dfgt, gfdg, rfas, rfgsf, sdf, sdr, tty]
Run Code Online (Sandbox Code Playgroud)
现在在8:35:03当我执行相同的程序时,我输出为:
[adsrf, asd, asd, asddre, asdfr, dfgt, gfdg, rfas, rfgsf, sdf, sdr, tty]
Sort in-built is 1
Insertion Sort is 1
[adsrf, asd, asd, asddre, asdfr, dfgt, gfdg, rfas, rfgsf, sdf, sdr, tty]
Run Code Online (Sandbox Code Playgroud)
经过几分钟后,我输出为:
[adsrf, asd, asd, asddre, asdfr, dfgt, gfdg, rfas, rfgsf, sdf, sdr, tty]
Sort in-built is 0
Insertion Sort is 1
[adsrf, asd, asd, asddre, asdfr, dfgt, gfdg, rfas, rfgsf, sdf, sdr, tty]
Run Code Online (Sandbox Code Playgroud)
您是否注意到每次执行程序时方法的运行时间都会发生变化?值得注意的是,从第一次执行和第二次执行开始,变化很大.那么这是否意味着Groovy将某个最新输出缓存到某个最小/秒?为什么每秒钟的变化怎么样?
提前致谢.
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |