一个简单的二维数组允许在 O(1) 时间内交换矩阵中的行(或列)。是否有一种高效的数据结构可以在 O(1) 时间内交换矩阵的行和列?
最佳答案
您必须将矩阵存储为行列表或列列表。这给出了 O(1) 中的行交换或列交换。
但是,您可以在其上添加另一个层来处理列顺序,以便您可以在 O(1) 中对列重新排序。
因此对于您需要做的每一次访问:
x = data[row][colorder[col]]
行交换为:
data[row1], data[row2] = data[row2], data[row1]
并将列交换为:
colorder[col1], colorder[col2] = colorder[c2], colorder[c1]
关于python - 矩阵数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686162/