import random def main(): # Prepare random.seed() # Get Matrix size while True: M = int(input()) if M > 5: break # Create matrix matrix = [ [random.randint(1,50) for i in range(M)] for j in range(M)] print("До сортировки") print_matrix(matrix) sort_matrix(matrix) print("После сортировки") print_matrix(matrix) def sort_matrix(matrix): for i in range( len(matrix) ): # Get column for sort column = matrix[i] # Bubble sort for j in range( len(column) ): for k in range( len(column)-1 ): if column[k] < column[k+1]: column[k+1],column[k] = column[k],column[k+1] # Flip odd columns if i % 2 != 0: column.reverse() for i in range( len(matrix) ): for j in range( len(matrix)-1 ): if sum(matrix[j]) > sum(matrix[j+1]): matrix[j+1],matrix[j] = matrix[j],matrix[j+1] def print_matrix(matrix): # Create row for print. Consists of each i element in a column row = [] for i in range( len(matrix[0]) ): for j in range( len(matrix) ): row.append( matrix[j][i] ) # Print row for k in range( len(matrix) ): print("{:>4}".format(row[k]), end="") print("") row.clear() for i in range( len(matrix) ): print("{:>4}".format(sum(matrix[i])), end="") print("\n") main()