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


# Сложность А, задание 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


n = int(input("Введите размер квадратной матрицы n: "))
matrix = [[random.randint(-50, 50) for _ in range(n)] for _ in range(n)]

print("\nИсходная матрица:")
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)


# Сложность Б, задание 5
# Сортировка строк матрицы по убыванию суммы элементов строк (сортировка пузырьком)

import random


def print_matrix(matrix):
    for row in matrix:
        print(" ".join(f"{x:4d}" for x in row), "  | сумма =", sum(row))


def bubble_sort_rows(matrix):
    n = len(matrix)
    for i in range(n - 1):
        swapped = False
        for j in range(n - 1 - i):
            # Если сумма текущей строки меньше суммы следующей — меняем местами
            if sum(matrix[j]) < sum(matrix[j + 1]):
                matrix[j], matrix[j + 1] = matrix[j + 1], matrix[j]
                swapped = True
        if not swapped:
            break


rows = int(input("Введите количество строк: "))
cols = int(input("Введите количество столбцов: "))
matrix = [[random.randint(-50, 50) for _ in range(cols)] for _ in range(rows)]

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

bubble_sort_rows(matrix)

print("\nМатрица после сортировки строк по убыванию суммы:")
print_matrix(matrix)