![](/img/trans.png)
[英]Sorting arrays from lowest to highest numbers with ratios using methods in Java
[英]Time testing problem for sorting methods using random numbers and arrays
我最后有时间分析代码的排序方法的工作代码,但不知道在哪里放置排序方法的随机数或数组生成器代码。 每次尝试时都会出错,希望有人可以向我展示调用随机方法而不是默认分配时的外观。 另外,计时部分做得对吗? 似乎不需要那么长时间,当我运行时,我会得到类似 69391841667800 纳秒的信息。
public class InsertSort {
private int[] arr;
public InsertSort(int[] array) {
arr = array;
}
private boolean more(int value1, int value2)
{
return value1 > value2;
}
public void sort()
{
int size = arr.length;
int temp,j;
for(int i=1; i<size; i++)
{temp=arr[i];
for(j=i; j>0 && more(arr[j-1], temp); j--)
{
arr[j]=arr[j-1];
}
arr[j]=temp;
}
}
public static void main(String[] args)
{
int[] array = {9,1,8,2,7,3,6,4,5};
InsertSort bs = new InsertSort(array);
bs.sort();
for(int i=0;i<array.length ;i++)
{
System.out.print(array[i] + " ");
}
long endTime = System.nanoTime(); //Current system Time at end
long startTime = 0;
long duration = (endTime - startTime); //divide by 1000000 to get milliseconds.
System.out.print(duration);
}
}
这是我的随机数生成器代码
import java.util.ArrayList;
public class Random {
public static void main(String[] args)
{
System.out.println(generateRandomList(5, 1, 10));
}
public static ArrayList<Integer> generateRandomList( int size, int min, int max) {
ArrayList<Integer> list;
list = new ArrayList<>();
for(int i=0;i<size;i++) {
int n = (int)(Math.random() * (max-min))+min;
list.add(n);
}
return list;
}
}
你需要更换
int[] array = {9,1,8,2,7,3,6,4,5};
在你的第一个主要方法中调用generateRandomList
像这样
int[] array = Random.generateRandomList(5, 1, 10);
如果您不使用 IDE,您可能需要添加随机 class 以导入主要 class 的部分。
测量 java 代码的执行时间非常重要。 请查看以下链接以获取更多信息https://www.baeldung.com/java-microbenchmark-harness
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.