您好我正在处理随机生成的数字列表,需要对它们进行排序。目前我将数字生成到数组中并输出它们。我需要能够按升序对数字进行排序。我的问题是如何调用随机生成的数组进行排序。所以我可以标记对列表进行排序所需的时间。
import java.util.*;
public class project2 {
public static int[] mklist(int len, int max, int min){
Random r = new Random();
int spread = max - min;
int[] numbers = new int[len];
for(int i = 0; i < len; i++)
numbers[i] = (r.nextInt() % (spread/2) + (spread/2)) + min;
return numbers;
}
static void printarray(int[] A) {
int i = 0;
while (i < A.length) {
System.out.print(A[i] + " ");
i++;
}
System.out.println("");
}
public static void main(String [] args) {
int[] tl;
long StartTime = System.nanoTime();
tl = mklist(10, 10000, 100);
long EndTime = System.nanoTime();
System.out.println("Time to create list: " + (EndTime - StartTime)/1000000.0 + " milliseconds");
printarray(tl);
}
}
这是一个有效的分拣机:
public static int[] ascending(int[] a){
int temp;
for(int i = 0; i < a.length - 1; i++){
for(int j = 0; j < a.length - 1; j++){
if(a[j] > a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return(a);
}
答案 0 :(得分:0)
只需修改您当前的主要方法。
public static void main(String [] args) {
int[] tl;
long StartTime = System.nanoTime();
tl = mklist(10, 10000, 100);
long EndTime = System.nanoTime();
System.out.println("Time to create list: " + (EndTime - StartTime)/1000000.0 + " milliseconds");
printarray(tl);
StartTime = System.nanoTime();
Arrays.sort(tl);
EndTime = System.nanoTime();
System.out.println("Time to sort list: " + (EndTime - StartTime)/1000000.0 + " milliseconds");
printarray(tl);
}