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+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.