微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查使用Java中的Bubblesort排序随机整数需要多长时间?

如何解决如何检查使用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 举报,一经查实,本站将立刻删除。