📅  最后修改于: 2023-12-03 14:58:36.092000             🧑  作者: Mango
在一些研究领域,经常需要对大量数据进行分析和处理。一种常见的方式是使用矩阵来表示数据,例如在图像处理、信号处理、统计学等领域中,矩阵都扮演着重要的角色。编写一个程序,输入一个 n
行 m
列的矩阵,然后输出这个矩阵的转置矩阵。
第一行包含两个整数 n
和 m
,表示矩阵的行数和列数。接下来 n
行,每行包含 m
个整数,表示矩阵的元素。矩阵中的元素均为不超过 $1000$ 的整数。
输出一个 m
行 n
列的矩阵,即为输入矩阵的转置矩阵。
输入样例:
3 4
1 2 3 4
5 6 7 8
9 10 11 12
输出样例:
1 5 9
2 6 10
3 7 11
4 8 12
要实现矩阵转置,可以使用两个嵌套的循环来遍历矩阵,并交换对应位置的元素。时间复杂度为 $O(nm)$。
代码如下:
# 读入矩阵的行数和列数
n, m = map(int, input().split())
# 读入矩阵
matrix = []
for i in range(n):
row = list(map(int, input().split()))
matrix.append(row)
# 转置矩阵
transposed_matrix = []
for j in range(m):
column = []
for i in range(n):
column.append(matrix[i][j])
transposed_matrix.append(column)
# 输出转置矩阵
for row in transposed_matrix:
print(' '.join(map(str, row)))
时间复杂度分析:
读入矩阵的时间复杂度为 $O(nm)$。
转置矩阵的时间复杂度为 $O(nm)$。
输出转置矩阵的时间复杂度为 $O(nm)$。
因此,总时间复杂度为 $O(nm)$。