Как отсортировать этот массив в порядке возрастания? - PullRequest
0 голосов
/ 20 октября 2018

Я хотел бы сгенерировать массив из 100 чисел и найти их среднее значение и сумму.Я могу сделать это, но я не могу получить вывод чисел в порядке возрастания.Я супер новичок в Java.

import java.util.Random;

public class randomNumberGen
{
    public static void main(String [] args)
    {
        Random r=new Random();
        double sum = 0; // is double so to prevent int division later on
        int amount = 100;
        int upperBound = 100;

        for (int i = 0; i < amount; i++){
             int next = r.nextInt(upperBound) + 1; // creates a random int in [1,100]
            System.out.println(next);

            sum += next; // accumulate sum of all random numbers
        }

        System.out.println("Your average is: " + (sum / amount));
        System.out.println("Your sum is: " + (sum));        
    }
}

Ответы [ 3 ]

0 голосов
/ 21 октября 2018

Существует множество различных методов сортировки.Для начинающих начните с Bubble Sort или Insertion Sort .Сортировка вставок немного лучше, поскольку в среднем она работает немного быстрее.

0 голосов
/ 21 октября 2018

Я предлагаю использовать одну из специальных коллекций для внутренней сортировки чисел без использования одного из алгоритмов сортировки (например, us PriorityQueue):

public static void main(String[] args) {
    final int amount = 100;

    Random random = new SecureRandom();
    Queue<Integer> queue = new PriorityQueue<>(amount, Comparator.naturalOrder());  // Comparator.reverseOrder() for reverse order
    int sum = 0;

    for (int i = 0; i < amount; i++) {
        int val = random.nextInt(100) + 1;
        sum += val;
        queue.add(val);
    }

    System.out.println(Arrays.toString(queue.toArray()));
    System.out.println("Your average is: " + (double)sum / amount);
    System.out.println("Your sum is: " + sum);
}
0 голосов
/ 20 октября 2018

это очень просто.однако я не видел никакого массива в вашем коде.Я создаю пример кода для вас.Вы можете обратиться за дополнительной помощью.

public static void main(String[] args) {
    SecureRandom random = new SecureRandom(); // it is better to use this library
    double sum = 0; // is double so to prevent int division later on
    int amount = 100;
    int upperBound = 100;
    int[] array = new int[amount]; // create an array with amount size
    for (int i = 0; i < amount; i++) {
        array[i] = random.nextInt(upperBound) + 1; // creates a random int in [1 , upperBound]
        sum += array[i]; // accumulate sum of all random numbers
    }
    Arrays.sort(array); // sort array in default order which is ascending
    System.out.println(Arrays.toString(array)); // toString is a way to print all of array, without iterate it and print it
    System.out.println("Your average is: " + (sum / amount));
    System.out.println("Your sum is: " + sum);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...