Для перестановки строк матрицы по возрастанию элементов главной диагонали вам потребуется следующий алгоритм:
1. Создать двумерный массив (матрицу) в Java и заполнить его значениями.
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
2. Создать новый массив, который будет хранить значения главной диагонали и заполнить его значениями.
int[] diagonal = new int[matrix.length]; for (int i = 0; i < matrix.length; i++) { diagonal[i] = matrix[i][i]; }
3. Отсортировать массив, содержащий значения главной диагонали, по возрастанию.
Arrays.sort(diagonal);
4. Создать новую матрицу для хранения переставленных строк.
int[][] sortedMatrix = new int[matrix.length][matrix[0].length];
5. Для каждого элемента отсортированного массива главной диагонали, найти соответствующую строку в исходной матрице и скопировать ее в новую отсортированную матрицу.
for (int i = 0; i < diagonal.length; i++) { for (int j = 0; j < matrix.length; j++) { if (diagonal[i] == matrix[j][j]) { sortedMatrix[i] = matrix[j]; } } }
6. Результатом будет переменная sortedMatrix
, содержащая матрицу, в которой строки переставлены по возрастанию элементов главной диагонали.
Полный код решения выглядит следующим образом:
import java.util.Arrays; public class Main { public static void main(String[] args) { int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int[] diagonal = new int[matrix.length]; for (int i = 0; i < matrix.length; i++) { diagonal[i] = matrix[i][i]; } Arrays.sort(diagonal); int[][] sortedMatrix = new int[matrix.length][matrix[0].length]; for (int i = 0; i < diagonal.length; i++) { for (int j = 0; j < matrix.length; j++) { if (diagonal[i] == matrix[j][j]) { sortedMatrix[i] = matrix[j]; } } } // Вывод результата System.out.println("Исходная матрица:"); printMatrix(matrix); System.out.println("Матрица с переставленными строками по возрастанию элементов главной диагонали:"); printMatrix(sortedMatrix); } public static void printMatrix(int[][] matrix) { for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length; j++) { System.out.print(matrix[i][j] + " "); } System.out.println(); } } }
Выполнение кода выведет исходную и переставленную матрицы в формате, подобном следующему:
Исходная матрица: 1 2 3 4 5 6 7 8 9 Матрица с переставленными строками по возрастанию элементов главной диагонали: 1 2 3 4 5 6 7 8 9
Обратите внимание, что данный код рассчитан на матрицу размером NxN и предполагает, что главная диагональ состоит только из уникальных элементов. Если матрица имеет другие размеры или содержит повторяющиеся элементы на главной диагонали, решение может потребовать некоторой модификации.