[英]How to sort double dimensional array
我有一個二維數組。 我想根據第二列以降序方式對數組進行排序。 你能幫我么
Dim house_rank(12, 1) As Integer
For h = 1 To 12
house_rank(h - 1, 0) = h
house_rank(h - 1, 1) = h_val(h - 1)
Next
沒有“自動”方式對二維數組進行排序。 如果你想就地做,那么你必須自己實現一個排序算法,然后在第二個“列”上做,每當你移動一個值時,對第一個“列”中的值執行相同的操作出色地。 如果您不確定就地執行此操作,則可以創建兩個 1D arrays,然后使用 Array.Sort 的重載,根據其中一個中的值對兩個Array.Sort
進行排序,然后重新填充原始數組。 這是一個可以做到這一點的方法:
Private Sub SortBySecondColumn(Of T)(matrix As T(,))
Dim upperBound = matrix.GetUpperBound(0)
Dim firstColumn(upperBound) As T
Dim secondColumn(upperBound) As T
'Copy data from 2D array to 1D arrays.
For i = 0 To upperBound
firstColumn(i) = matrix(i, 0)
secondColumn(i) = matrix(i, 1)
Next
'Sort both columns by the second column.
Array.Sort(secondColumn, firstColumn)
'Copy data back from 1D arrays to 2D array.
For i = 0 To upperBound
matrix(i, 0) = firstColumn(i)
matrix(i, 1) = secondColumn(i)
Next
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.