簡體   English   中英

對隨機生成的數組進行排序

[英]Sorting a randomly generated array

您好,我正在處理隨機生成的數字列表,需要對它們進行排序。 目前,我將數字生成到數組中並輸出它們。 我需要能夠按升序對數字進行排序。 我的問題是如何調出要排序的隨機生成的數組。 因此,我可以標記對列表進行排序需要花費多少時間。

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

只需修改您當前的主要方法即可。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM