如何解决如何检查使用Java中的Bubblesort排序随机整数需要多长时间?
我想看看要对10,000个随机整数进行排序需要多长时间。由于在冒泡排序中,每个阶段都会对数组进行排序,并且每次也可能会有所不同,因此我想知道最终排序数组出现的总时间。因此,我的时间计算应该是数组的每次排序发生的时间,最后一次排序发生并且结果出现时,输出应该以秒为单位告诉我时间。
我已经使用System.currentTimeMillis();
来完成这项任务,但是我将如何使用它来计算每个排序阶段的时间呢?我在for (int k = 0; k < numbers.length; k++){
循环中使用了它,因为这循环了排序的所有阶段,但是我的程序不会输出任何内容。我该如何解决?
代码:
class Main {
public static void main(String[] args) {
// Clear screen
System.out.print("\033[H\033[2J");
System.out.flush();
double msstartTime = 0d;
double msEndTime = 0d;
// Initialize an int array variable and set the limit to 10,000
int numbers[] = new int[10000];
// Generate random 10,000 integers to bubblesort
for (int x = 0; x < numbers.length; x++) {
numbers[x] = (int) (Math.random() * 10001);
}
for (int i = 0; i < numbers.length; i++) {
for (int j = i; j < numbers.length; j++) {
if (numbers[j] < numbers[i]) {
int temp = numbers[j];
numbers[j] = numbers[i];
numbers[i] = temp;
}
}
for (int k = 0; k < numbers.length; k++){
msstartTime = (double) System.currentTimeMillis();
}
}
msEndTime = (double) System.currentTimeMillis();
System.out
.println("To sort an array of 10,000 integers,it takes " + (msEndTime - msstartTime) / 1000 + " seconds");
}
}
解决方法
我认为您可以使用StopWatch。这是您可以将其添加到Maven并使用它的方式 https://www.baeldung.com/java-measure-elapsed-time
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。