1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Sub TriMultiCol()
Dim tablo(), temp(), temp2()
ReDim tablo(1 To 2, 1 To 8)
tablo(1, 1) = 7: tablo(2, 1) = 45
tablo(1, 2) = 3: tablo(2, 2) = 37
tablo(1, 3) = 2: tablo(2, 3) = 49
tablo(1, 4) = 6: tablo(2, 4) = 21
tablo(1, 5) = 5: tablo(2, 5) = 85
tablo(1, 6) = 1: tablo(2, 6) = 49
tablo(1, 7) = 4: tablo(2, 7) = 51
tablo(1, 8) = 8: tablo(2, 8) = 24
Call Quick(tablo, LBound(tablo, 2), UBound(tablo, 2))
ReDim temp(LBound(tablo, 2) To UBound(tablo, 2)): ReDim temp2(LBound(tablo, 2) To UBound(tablo, 2))
For i = LBound(tablo, 2) To UBound(tablo, 2)
temp(i) = tablo(1, i): temp2(i) = tablo(2, i)
Next i
Debug.Print Join(temp, " "): Debug.Print Join(temp2, " ")
End Sub
Private Sub Quick(a, gauc, droi)
ref = a(2, (gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(2, g) < ref: g = g + 1: Loop
Do While ref < a(2, d): d = d - 1: Loop
If g <= d Then
temp = a(1, g): a(1, g) = a(1, d): a(1, d) = temp
temp = a(2, g): a(2, g) = a(2, d): a(2, d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Quick(a, g, droi)
If gauc < d Then Call Quick(a, gauc, d)
End Sub |
Partager