Как я могу отсортировать список с данными из другого списка, добавляя в конце? - PullRequest
0 голосов
/ 14 апреля 2020

Реализуйте метод экземпляра, называемый sort, который, предполагая, что список содержит значения больше 0 и все его элементы различны, возвращает новый упорядоченный список, используя следующую стратегию: «выберите дополнительный элемент из списка и поместите его это в конце списка результатов ». Обратите внимание, что исходный список НЕ ДОЛЖЕН быть изменен.

    public IntegerLinkedList sort(IntegerLinkedList l){
        IntegerLinkedList l2 = new IntegerLinkedList ();
        int min = Integer.MAX_VALUE;
        int min_prev = Integer.MIN_VALUE;
        int pos;
        for (int i=0; i<l.length(); i++){
            pos=0;          
            while (pos<l.length()) {
                if ((l.element(pos) < min) & (l.element(pos) > min_prev)){                  
                    min = l.element(pos);
                }
                pos++;
            }                       
            min_prev=min;
            l2.AddAtTheEnd(min);
        }
        return l2;
}
List: 2 -> 8 -> 4 -> 6 -> 1 -> 3 -> 7 -> 9 -> 5 -> 10

Первый просмотр списка Java в университете. Поэтому моя проблема в том, что я не могу перестать добавлять 1 к l2 все время. Этот код является идеей того, что у меня было, но он возвращает список из 10 длин, полный 1. Есть время, когда 1 не меньше 1 и не больше 1. Мне нужно «избегать» последнего наименьшего добавленного числа, поэтому я Можно добавить другие больше, чем мин.

Спасибо!

1 Ответ

0 голосов
/ 14 апреля 2020

После первого запуска for-l oop, min равно 1. Он никогда не устанавливается ни на что другое: (l.element(pos) < 1) ложно для всех элементов, кроме 1.

Вам необходимо сбрасывать значение min при каждом запуске l oop.

    for (int i=0; i<l.length(); i++){
        int min = Integer.MAX_VALUE;
        pos=0;          
        while (pos<l.length()) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...