老师,在我生成数组时,发现一个问题
当我设置100万以下时,可能我电脑速度比较快,查询时间显示不出来,于是我只好调成了100万以上才能看到毫秒数,然后我就在做对比测试的时候
第一次我用的100万 1000万两个长度的数据
显示出了时间,但是相差比较小,于是我就又增大了数据,调成了1000万和1亿
然后问题就出现了,当我是100万和1000万的时候是这样的,我明明等待了2秒左右,查询结果却还是那么快
然后我调整成了1000万和1亿的时候,我等了几十秒才出现结果,然后数据是
说明两次查询都很快,于是我猜想,一定是在生成数组的时候太慢了,然后我就在生成数组的for循环外部,也增加了时间的监控
然后两次测试如图
然后我就证实了自己的猜想,确实是因为在生成数组的时候,花费了大量的时间
但是通过我多次测试的比较,发现了在我数据为100万与1000万的时候,插入的很快,
哪怕是1000万插入也只需要0.4S左右
但是当我数据为1000万与1亿的时候,插入1000万就需要2.7秒
左右,同样是生成1000万数据的数组,为什么差距这么大呢?
正在回答
抱歉,我没有理解你的问题。什么叫“插入1000万”?我们这一章的代码是做线性查找,是查询的过程。
如果你的问题是,为什么生成数组大到一定程度,生成的时间就变得很长,是的,静态数据内存分配就是这样。因为系统需要找到一个连续的空间,而需要分配的内存过大,这个连续空间很难找到,甚至没有,系统需要先做一些内存整理工作,再分配除这个连续空间。
所以,在我们的性能测试中,我们是不把这个 new 的时间测试进来的。因为这部分性能开销不属于线性查找算法的性能开销。
继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星