gpt4 book ai didi

java - 迭代后计算时间减少

转载 作者:行者123 更新时间:2023-11-29 03:19:07 24 4
gpt4 key购买 nike

我正在做关于排序算法效率的项目。假设我执行了 50 次冒泡排序迭代并找到 n 个数字所花费的平均时间。但我意识到前几次迭代总是比后续迭代慢

例如1394ms, 1381ms, 1001ms, 1008ms, 1008ms ,1011ms...

        long lStartTime = System.currentTimeMillis();
bubbleSort(R); // R is the array of int
long lEndTime = System.currentTimeMillis();
long difference = lEndTime - lStartTime;

这背后的原因是什么?是因为cpu可以判断哪组数据存入cache吗?如果是这样,我不应该用后面的计算时间来分析,不现实吗?

谢谢!

编辑:我也在做其他排序算法,以冒泡排序为例,但事实是它发生在我做的所有排序中,除了插入

public static int[] bubbleSort(int[] S) {
int counter = 0;
boolean isUnsort = true;
while (isUnsort) {
isUnsort = false;

for (int i = 0; i < S.length - 1 - counter; i++) {
if (S[i] > S[i + 1]) {
int temp = S[i];
S[i] = S[i + 1];
S[i + 1] = temp;
isUnsort = true;
}

}
counter++;
}
return S;
}

最佳答案

这可能是即时编译器将您的字节码翻译成更有效的形式。我建议你在开始计时之前至少进行一次(但最好是几次)热身。此外,冒泡排序是一种非常低效的排序。

关于java - 迭代后计算时间减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24773037/

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