首頁 > 後端開發 > Python教學 > Python程式用於按列對2D數組進行排序

Python程式用於按列對2D數組進行排序

王林
發布: 2023-09-15 22:57:03
轉載
777 人瀏覽過

Python程式用於按列對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 陣列進行排序的概念的工作原理。

以上是Python程式用於按列對2D數組進行排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板