Python中矩阵的列排序

假设我们有一个矩阵,我们必须按升序对每一列进行排序。

所以,如果输入像

11
21
31
6
6
4
1
11
8

那么输出将是

1
6
4
6
11
8
11
21
31

为了解决这个问题,我们将遵循以下步骤-

  • R:=矩阵的行数,C:=矩阵的列数

  • res:=与给定矩阵大小相同的矩阵,并用0填充

  • 对于0到C范围内的col,请执行

    • res [row,col]:=从值中删除最后一个元素

    • values:=将元素作为矩阵的向量[col]

    • 对于0到R范围内的行,请执行

    • 返回资源

    让我们看下面的实现以更好地理解-

    示例

    class Solution:
       def solve(self, matrix):
          R = len(matrix)
          C = len(matrix[0])
          res = [[0] * C for _ in range(R)]
          for col in range(C):
             values = [r[col] for r in matrix]
             values.sort(reverse=True)
             for row in range(R):
                res[row][col] = values.pop()
          return res
    ob = Solution()matrix = [[11, 21, 31],[6, 6, 4],[1, 11, 8]]
    print(ob.solve(matrix))

    输入值

    [[11, 21, 31],
    [6, 6, 4],
    [1, 11, 8]]

    输出结果

    [[1, 6, 4],[6, 11, 8],[11, 21, 31]]