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 in range(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("The array before performing sorting operation is: ")
for i in range(size):
   for j in range(size):

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

print("The array after performing sorting operation is: ")
sort_the_array_column_wise(arr)

输出

以上程序的输出如下:

The array before performing sorting operation is: 
7 9 5 7
9 5 9 4
2 7 8 6
8 6 6 5
The array after performing sorting operation is:
9 9 9 7
7 7 8 6
8 6 6 5
2 5 5 4

结论

我们可以清楚地看到以上示例中输出实际上与期望的结果匹配。同样地,通过改变以上程序中的几个语句,可以对2D数组按行进行排序。这就是按列对2D数组进行排序的工作原理。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程