Загрузка данных


# Сложность А, задание 5
# Сортировка побочной диагонали квадратной матрицы по возрастанию методом вставок

import random


def print_matrix(matrix):
    for row in matrix:
        print(" ".join(f"{x:4d}" for x in row))


def insertion_sort(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        j = i - 1
        while j >= 0 and arr[j] > key:
            arr[j + 1] = arr[j]
            j -= 1
        arr[j + 1] = key


m = 5
n = 5

matrix = []
for i in range(m):
    matrix.append([])

    for j in range(n):
        matrix[i].append(random.randint(-50, 50))

print("Исходная матрица:")
print_matrix(matrix)

# Побочная диагональ: элементы matrix[i][n - 1 - i]
diagonal = [matrix[i][n - 1 - i] for i in range(n)]
print("\nПобочная диагональ до сортировки:", diagonal)

insertion_sort(diagonal)

# Записываем отсортированные значения обратно (сверху вниз)
for i in range(n):
    matrix[i][n - 1 - i] = diagonal[i]

print("Побочная диагональ после сортировки:", diagonal)

print("\nМатрица после сортировки:")
print_matrix(matrix)