Я должен генерировать случайные числа, однако, если вы запустите его, я получу больше повторений, это естественно, или я все испортил? - PullRequest
0 голосов
/ 19 апреля 2020

Я должен создать массив из 1000 чисел в нем, а затем отсортировать по пузырькам. результат, который я получаю, имеет довольно много повторяющихся чисел, слишком много, и я чувствую, что я испортил. Я все еще учусь, поэтому go легко для меня:)

publi c stati c void main (String [] args) {

    Random rd = new Random();
int[] arr = new int[1000];

for (int i = 0; i < arr.length; i++ ) {
    arr[i] = (int)(Math.random()*1000+1);



int n = arr.length;
int temp = 0;

for(int z=0; z < n; z++){
for(int j=1; j < (n-z); j++){                        
   if(arr[j-1] > arr[j]){

        temp = arr[j-1];
        arr[j-1] = arr[j];
        arr[j] = temp;

   }                    
   }
   }


    System.out.println(arr[i]);

1 Ответ

1 голос
/ 19 апреля 2020

Ваша основная проблема заключается в том, что вы все еще инициализируете свой массив, пытаясь разобраться в нем. Следующий подход, кажется, дает то, что вы ожидали.

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

    static void myRandom() {
        Random rand = new Random();
        int[] arr = new int[1000];

        for(int i = 0; i < arr.length; i++){
            arr[i] = rand.nextInt(1000) + 1;
            System.out.println(arr[i]);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...