gpt4 book ai didi

java - 计时排序算法需要多长时间的正确方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:28 25 4
gpt4 key购买 nike

(使用 Java)

我正在测试排序数组,以了解不同排序数组的执行速度。我想剔除错误的时间,所以理想情况下我想启动一个计时器,循环运行排序 100 次,停止计时器,然后除以 100 以获得非常准确的测量值。

问题是如果我要循环同一个数组,它会在第一次正确排序,然后每次排序后,它会继续对已经排序的数组进行排序,这不是我想要的。

也许我错过了一个明显的解决方案,但有什么方法可以让它继续对相同的初始随机数组进行排序?

我想每次都将新排序的数组重新分配回初始随机数组,但这会弄乱我的计时器..

谢谢你的建议

我想做什么:

        startTime = System.nanoTime();
for(int i=0; i<cntr; i++) {
sort array
}
endTime = System.nanoTime();
time = (endTime - startTime)/cntr;

最佳答案

您可以在开始排序之前创建一个副本,然后在循环的每次迭代中从该存储的副本复制到正在排序的数组中。

int[] toBeSorted = new int[10000];
// fill the array with data
int[] copied = new int[10000];
System.arrayCopy(toBeSorted, 0, copied, 0, copied.length);
// prepare the timer, but do not start it
for (int = 0 ; i != 100 ; i++) {
System.arrayCopy(copied, 0, toBeSorted, 0, copied.length);
// Now the toBeSorted is in its initial state
// Start the timer
Arrays.sort(toBeSorted);
// Stop the timer before the next iteration
}

关于java - 计时排序算法需要多长时间的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9561110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com