package com.javarush.task.pro.task06.task0605;
/*
Правильный порядок
*/
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 a = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = a;
}
}
public static void printArray(int[] array) {
for (int i : array) {
System.out.print(i + ", ");
}
System.out.println();
}
}
public static void reverseArray(int[] array) {
for (int i = 0; i < array.length / 2; i++) {
int a = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = a;
}
МЫ создали переменную а что бы менять индексы местами, в первый раз индекс равен 0, в а мы сохранили индекс 0, в индекс 0 сохранили длину массива - ай - 1, а это 8 - 0 - 1 = 7 тоесть мы сохранили 7 индекс, а 7 в индекс мы сохранили 0, а куда 8 пропал.....
shiraaka
1 уровень
Памагите
Решен
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
SerGo
27 июля 2024, 05:42решение
Идём от первого элемента, т. е. нулевого.За 1 итерацию i в цикле(т . е. - i ) смещаемся на 1 индекс назад ( 0 индекс - 1 получаем последний элемент массива) и так идем по каждому элементу до половины длины массива.)
int a = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = a;
а здесь ты меняешь элементы местами.
+2
hidden #3303140
26 июля 2024, 21:41решение
У массива длиной N последний индекс будет N-1:
0, 1, 2, ... N-1 (всего N элементов).
В твоём массиве 9 элементов, их индексы - это 0, 1, 2, 3, 4, 5, 6, 7, 8 - всего 9 элементов.
Значит array.length = 9, а array.length - 1 = 8 и указывает на последний элемент.
Я думаю, будет немного понятней, если вместо array.length - i - 1 записать в другом порядке: (array.length - 1) - i. Так становится очевидно, что поскольку array.length - 1 это всегда индекс последнего элемента, то вся запись (array.length - 1) - i означает сдвиг на i элементов влево от конца массива к его началу, точно так же как само i (или же другими словами 0 + i) означает сдвиг на i элементов вправо от начала массива к его концу.
+2
KIRAРазработчик в prosv.ruExpert
26 июля 2024, 21:37решение
а это 8 - 0 - 1 = 7
Длинна массива 9, а не 8
9-0-1=8
+2
shiraaka
27 июля 2024, 07:16
аааа, все я понял спасибо)
0