对随机生成的数组进行排序

时间:2014-10-30 19:56:15

标签: java arrays sorting random

您好我正在处理随机生成的数字列表,需要对它们进行排序。目前我将数字生成到数组中并输出它们。我需要能够按升序对数字进行排序。我的问题是如何调用随机生成的数组进行排序。所以我可以标记对列表进行排序所需的时间。

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);
}

1 个答案:

答案 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);
}
相关问题