Можете пожалуйста написать пошагово как работает метод reverseArray, я не могу понять
public class Solution {
public static void main(String[] args) {
int[] array = {11, 22, 33, 44, 55, 66, 77, 88, 99};
printArray(array);
reverseArray(array);
printArray(array);
}
public static void reverseArray(int[] array) { //??????
for (int i = 0; i < array.length / 2; i++) {
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
public static void printArray(int[] array) {
for (int i : array) {
System.out.print(i + ", ");
}
System.out.println();
}
}
Anonymous #3270767
17 уровень
Обьясните пожалуйста как работает метод
Обсуждается
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
23 декабря 2023, 14:28
Поставь внутрь цикла вывод массива - и всё сам поймёшь, будет вполне наглядно, как оно работает
0
rman
23 декабря 2023, 10:43
1. первый элемент во временную
2. последний в первую
3. временную в последний
i++
4. второй во временную
5. предпоследний во вторую
6. временную в предпоследнюю
i++...
...
0
Anonymous #3346123
22 декабря 2023, 12:46
for (int i = 0; i < array.length / 2; i++) { // запускаем цикл с первой ячейки i = 0 до половины массива
int temp = array[i]; // объявляем переменную int temp и кладём туда значение array[0] = 11,
array[i] = array[array.length - i - 1]; // присваиваем значению в array[0] = 11 значение в последней
// ячейке array[array.length - i - 1] = 99, т.е. теперь в 1-ой ячейке =99
array[array.length - i - 1] = temp; // в последнюю ячейку array[array.length - i - 1] кладем значение
// переменной int temp = array[0] = 11, конец первой итерации
В результате первой итерации в первой ячейке имеем значение последней и в последней значение первой. То есть за одну итерацию меняются два значения и потому нам достаточна 1/2 массива.
To be continued.
+5
Anonymous #3342389Expert
3 февраля 2024, 22:19
почему [array.length - i - 1] ? разве последняя ячейка не просто [array.length - 1]
0
@itArarat
15 февраля 2024, 16:58
да ты прав array.lenght-1 это последний индекс элемента
но array.lenght-i-1 это зеркальный элемент обычного i
Если у нас в массиве [1,2,3,4,5,6]
array.lenght[0]=1
array.lenght[array.lenght-i-1]=6
и так далее
array.lenght[1]=2
array.lenght[array.lenght-i-1]=5
0
Денис Enterprise Java Developer
17 декабря 2023, 13:08
Меняет местами элементы удалённые на i от концов этого самого массива. Первый с последним, второй с предпоследним и так далее, пока не дойдёт до середины массива. Думаю это очевидно, что к середине ты уже будешь иметь полностью развёрнутый задом наперёд массив.
+1