Python程序:对2D数组进行列排序

Python程序:对2D数组进行列排序

当声明一个二维数组或2D数组时,它被作为矩阵进行处理。所以,我们知道矩阵由行和列组成。将矩阵特定列中的元素(按升序或降序)排序的过程称为对2D数组进行列排序。让我们考虑一下遵循输入输出方案的算法,以了解该概念的确切应用。

输入输出方案

考虑一个二维数组。

arr =  [[ 7, 9, 5, 7 ], [9, 5, 9, 4], [2, 7, 8, 6], [ 8, 6, 6, 5]]

上述二维数组的矩阵表示如下 –

7   9   5   7
9   5   9   4
2   7   8   6
8   6   6   5

现在,让我们按降序对特定矩阵列排序。

  • 第一列由元素7, 9, 2和8组成。元素7,9,2和8的降序排列为9,8,7和2。

  • 第二列由元素9,5,7和6组成。元素9,5,7和6的降序排列为9,7,6和5。

  • 类似地,第三和第四列也被排序了。

  • 按列降序排序的排序矩阵为

9   9   5   7
8   7   9   6
7   6   8   5
2   5   6   4 
  • 排序矩阵的数组表示为
[[9, 9, 9, 7 ], [7, 7, 8, 6], [8, 6, 6, 5], [ 2, 5, 5, 4 ]]
  • 这是排序后的结果数组。

示例

在此示例中,我们将讨论如何对二维数组进行列排序。为了构建所需的程序,必须遵循的步骤如下。

  • 步骤1 - 声明一个二维数组。

  • 步骤2 - 按列依次遍历所有元素以相应地对这些元素进行排序。

  • 步骤3 - 比较同一列的元素,如果一个元素小于另一个元素,则按以下条件进行比较。

  • 步骤4 - 如果条件不满足,则交换元素。

  • 步骤5 - 继续同样的过程,直到对列中的所有元素进行覆盖,并最后打印排序后的数组。

def sort_the_array_column_wise(arr):
   for j in range (size):
      for i inrange(size - 1):
         if arr[i][j] < arr[i + 1][j]:
            temp = arr[i][j]
            arr[i][j] = arr[i + 1][j]
            arr[i + 1][j] = temp

   for i in range(size):

      for j in range(size):

         print(arr[i][j], end=" ")

      print()

arr = [[7, 9, 5, 7 ], [9, 5, 9, 4], [2, 7, 8, 6], [ 8, 6, 6, 5 ]]

size = len(arr)
print("排序操作前的数组为: ")
for i in range(size):
   for j in range(size):

      print(arr[i][j], end=" ")
   print()

print("排序操作后的数组为: ")
sort_the_array_column_wise(arr)

输出

上述程序的输出如下 –

排序操作前的数组为: 
7 9 5 7
9 5 9 4
2 7 8 6
8 6 6 5
排序操作后的数组为:
9 9 9 7
7 7 8 6
8 6 6 5
2 5 5 4

结论

我们可以清晰地看到,上面的例子中,输出结果实际上与预期结果匹配。同样的,通过改变上面程序中的一些语句,可以对二维数组按行进行排序。这就是二维数组按列排序的原理。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程