當宣告二維陣列或二維陣列時,它被視為矩陣。所以,我們知道矩陣由行和列組成。依升序或降序對屬於矩陣特定列的元素進行排序的過程稱為跨列對 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中文網其他相關文章!