Алгоритм сортировки, массив, от наименьшего числа к наибольшему числу? - PullRequest
0 голосов
/ 29 сентября 2019

Итак, я начинающий, и я хотел попробовать алгоритм сортировки, который я не могу сделать.

Так что это всего лишь набросок того, с чего я хотел начать:

    package com.company;

    public class Main {
        public static void main(String[] args) {
        // write your code here
            int[] a = {11,7,8,3,15,13,9,19,18,10,4};
            int[] x;
            int merker = a[0]; // the merker has the value 11 now
            int i = 1;
            int n = a.length;

            while(n != 0){
               while(i < n ) {
                   if (a[i] < merker)
                     merker = a[i];
                   i = i + 1;
                }
                merker == x[0];
            }
        }
    }

и затем каким-то образом вырезаем «merker» для каждого цикла while, пока я не раскрою его так x [1] = 1, x [2] = 2

Первый цикл whileостановился бы, когда n = 0, что я сделал бы, вырезав каждое число, которое сортируется в другом алгоритме.

Теперь это не работает вообще, и я уверен, что я сделал тонныошибок.

В позиции "merker == x [0];" написано: "переменная x не могла быть инициализирована.

Я надеюсь на помощь, я крайненуб.

1 Ответ

0 голосов
/ 29 сентября 2019

В вашем коде несколько ошибок. Во-первых, вы не инициализировали массив x []. Во-вторых, вы не обновляете значение n, поэтому цикл while является своего рода бесконечным циклом.

Вы можете использовать пузырьковую сортировку, чтобы упорядочить элементы следующим образом:

public class Sorting {
    public static void main(String[] args) {
        int[] a = {11,7,8,3,15,13,9,19,18,10,4};
        Arrays.stream(a).forEach(System.out::println);
        int n = a.length;
        for (int i = 0; i < n-1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (a[j] > a[j + 1]) {
                    // swap temp and arr[i]
                    int temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
            }
        }
    System.out.println("After sorting");
    Arrays.stream(a).forEach(System.out::println);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...