我尝试编写一个原地转置函数,只是为了练习。有谁能告诉我这个算法的时间和空间复杂度是多少?
from copy import *
def transpose(matrix):
reference=deepcopy(matrix)
col_num=len(reference[0])
row_num=len(reference)
matrix.clear()
new=[list(map(lambda x: x[i],reference)) for i in range(col_num)]
for i in new:
matrix.append(new)
return matrix
x=[[ 1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
y=transpose(x)
编辑:使我的原地转置代码更加简洁