VB对二维数组排序

来源:百度知道 编辑:UC知道 时间:2024/06/15 05:18:18
对二维数组排序,各数组都是数值。比如数组a(m,n),要先按照第一维降序排序(要求结果中的m是降序排列)如果第一维相同则按照第二维升序(要求结果中的n升序)。最后得到每个数组元素的序数,这个序数放在一个二维数组里。挺复杂的二维数组排序。希望得到一个思路,最好可以写出大致代码框架。能有详细代码更好。至少追加50分

转换成一维数组比较

Dim b(1 To (m + 1) * (n + 1))
id = 1
For I = 0 To m
For J = 0 To n
b(id) = A(m, n)
id = id + 1
Next
Next

一维数组肯定没问题吧?

写了一个简单的例子,你可以参考一下,希望对你有帮助。
Private Sub Form_Load()
Dim A(5, 5) As Integer
Dim I, J, K As Integer
Dim Temp As Integer
Show
'生成二维数组
Randomize
For I = 0 To 5
For J = 0 To 5
A(I, J) = Int(Rnd * 90 + 10)
Print A(I, J);
Next J
Print
Next I
Print "======================="
'排序二维数组
'一维排序
For I = 0 To 5
For J = 0 To 4
For K = J + 1 To 5
If A(I, J) >= A(I, K) Then
Temp = A(I, J)
A(I, J) = A(I, K)
A(I, K) = Temp
End If
Next K
Next J
Next I
'二维排序
For I = 0 To 5
For J = 0 To 4
For K = J + 1