Как строки матрицы переставить по возростанию элементов главной диагонали?

Для перестановки строк матрицы по возрастанию элементов главной диагонали вам потребуется следующий алгоритм:

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 и предполагает, что главная диагональ состоит только из уникальных элементов. Если матрица имеет другие размеры или содержит повторяющиеся элементы на главной диагонали, решение может потребовать некоторой модификации.