Python程序用于按列排序二维数组


当声明一个二维数组或 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

结论

我们可以清楚地看到,输出实际上与上述示例中的预期结果相匹配。同样,可以通过更改上述程序中的少量语句来完成按行对二维数组进行排序。这就是按列排序二维数组的概念的工作原理。

更新于:2023年5月8日

3K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告