что значит инверсия массива с середины? Как вижу это я не придумывая «велосипеда».
Инверсия — это изменения порядка элементов в массиве на противоположный
// Выделяем память под массив и присваиваем переменной А ссылку на массив
int A[] = new int[20];
// Заполняем массив А[20] элементов
for (int i = 0; i < A.length; i++)
{
A[i] = i;
}
System.out.println("Массив А :");
for (Integer integer : A)
{
System.out.print(integer + " "); // Массив А : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
}
// Создадим 2 массива на 10 элементов
int B[] = new int[10];
int C[] = new int[10];
//Заполним массив B первыми 10 элементами массива А
for (int i = 0; i < B.length; i++)
{
B[i] = A[i];
}
System.out.println();
System.out.println("Массив B :");
for (Integer integer : B)
{
System.out.print(integer + " "); // Массив B : 0 1 2 3 4 5 6 7 8 9
}
// Заполним массив C последующими 10 элементами массива А, но для этого в цикле for нам нужны 2 переменные счетчики
for (int i = 0, j = 10; i < C.length && j < A.length ; i++,j++)
{
C[i] = A[j];
}
System.out.println();
System.out.println("Массив C :");
for (Integer integer : C)
{
System.out.print(integer + " "); // Массив C : 10 11 12 13 14 15 16 17 18 19
}
// обнулим перезапишем элементы массива А
for (int a = 0, b = B.length - 1, c = C.length - 1; (a < A.length && b >= 0) ||c >= 0; a++)
{
if (a < 10){
A[a] = B[b];
b--;
}
if (a >= 10){
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
у Вас, извиняюсь, дикая простыня получилась, хотя рабочая, да.
на
в циклах, выполнить тоже самое