【问题标题】:Sorting a randomly generated array对随机生成的数组进行排序
【发布时间】:2014-10-30 19:56:14
【问题描述】:

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

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

【问题讨论】:

  • ascending(tl); ?然后再次执行printarray(tl);。您已经编写了计时器代码,所以只需将其放在这两个方法调用周围
  • 您编写了所有代码,但您不知道如何调用您的方法?有些东西闻起来很腥......

标签: java arrays sorting random


【解决方案1】:

只需修改你当前的 main 方法。

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

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2013-01-13
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多