Сортированный массив одномерный, но массив [i + 1] всегда печатает элемент с нулевым индексом - PullRequest
0 голосов
/ 20 июня 2019

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

public class MyClass {
public static void main(String args[]) {
    String[] array = new String[]{"a","b","c","d","f"};
    String temp;
    for(int i =0; i < array.length; i++){
        if(i +1 < array.length){
            System.out.print("n >>" + i +" ");
            temp = array[i];
            array[i] = array[i+1];
            array[i+1] = temp;
            System.out.println(array[i+1]+ " " +array[i]);
        }
    }

}

}

когда я выполняю этот код, я получаю печать:

n >>0 a b
n >>1 a c
n >>2 a d
n >>3 a f

Я получил a для массива [i + 1]. пожалуйста, дайте мне объяснение по этому поводу. Благодаря.

Ответы [ 2 ]

1 голос
/ 20 июня 2019

так что у вас есть массив

[abcdf] Вы устанавливаете temp в качестве первого элемента в массиве (a).

temp = array[i]

Затем вы устанавливаете текущий элемент (0)к следующему элементу (1), так что теперь у нас есть [bbcdf]

array[i] = array[i+1];

Затем вы устанавливаете следующий элемент в массиве на тот, который был текущим.В этом случае, a.

array[i+1] = temp

, поэтому массив теперь равен [bacdf]

, затем вы распечатываете следующий элемент.Который будет «а».

Когда циклы развернутся, теперь он будет смотреть на второй элемент или индекс (1), который является «a», и снова начнет весь процесс со следующего элемента.

«i» будеттеперь будет равен второму элементу в массиве с индексом (1), который будет 'c', и он будет делать то же самое, что и массив: [bcadf].

Что будет делать этот цикл,это перенос 'a' до конца массива.

0 голосов
/ 20 июня 2019

Для каждой итерации цикла в позиции i вы меняете элемент на i + 1.Это означает, что в первой итерации (где i равно 0) «a» перемещается из индекса 0 в 1, затем вы проверяете array[i+1], что в данном случае равно array[1], что будет «a», которое вы только что переместили.

То же самое в следующей итерации.Вы получаете «a» в индексе 1 и перемещаете его в индекс 2, затем проверяете array[2].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...