Problem: imamo dvodimenzionalni array i želimo ga sortirati od najveće prema najmanjoj vrijednosti
Dim myArray(14,2)
myArray(0,0)=1 myArray(0,1)=84
myArray(1,0)=2 myArray(1,1)=87
myArray(2,0)=3 myArray(2,1)=100
myArray(3,0)=4 myArray(3,1)=89
myArray(4,0)=5 myArray(4,1)=68
myArray(5,0)=7 myArray(5,1)=93
myArray(6,0)=6 myArray(6,1)=84
myArray(7,0)=8 myArray(7,1)=91
myArray(8,0)=9 myArray(8,1)=81
myArray(9,0)=10 myArray(9,1)=91
myArray(10,0)=11 myArray(10,1)=89
myArray(11,0)=12 myArray(11,1)=77
myArray(12,0)=13 myArray(12,1)=91
myArray(13,0)=14 myArray(13,1)=91
myArray(14,0)=15 myArray(14,1)=89
Rješenje:
For i = LBound(myArray) to UBound(myArray)
For j = LBound(myArray) to UBound(myArray) - 1
If myArray(j,1) < myArray(j + 1,1) Then
TempValue = myArray(j + 1,1)
TempText = myArray(j + 1,0)
myArray(j + 1,1) = myArray(j,1)
myArray(j + 1,0) = myArray(j,0)
myArray(j,1) = TempValue
myArray(j,0) = TempText
End If
Next
Next
Rezultat:
myArray(0,0)=3 myArray(0,1)=100
myArray(1,0)=7 myArray(1,1)=93
myArray(2,0)=8 myArray(2,1)=91
myArray(3,0)=10 myArray(3,1)=91
myArray(4,0)=13 myArray(4,1)=91
myArray(5,0)=14 myArray(5,1)=91
myArray(6,0)=4 myArray(6,1)=89
myArray(7,0)=11 myArray(7,1)=89
myArray(8,0)=15 myArray(8,1)=89
myArray(9,0)=2 myArray(9,1)=87
myArray(10,0)=1 myArray(10,1)=84
myArray(11,0)=6 myArray(11,1)=84
myArray(12,0)=9 myArray(12,1)=81
myArray(13,0)=12 myArray(13,1)=77
myArray(14,0)=5 myArray(14,1)=68