Private Sub Command1_Click()
Cls
Dim a(9999) As Double
For i = LBound(a) To UBound(a)
a(i) = Rnd * 100
Next i
i = 0
qsort a, LBound(a), UBound(a)
For i = LBound(a) To UBound(a)
Print Format(a(i), "0.00") & " ";
i = i + 1
If i Mod 15 = 0 Then Print
Next i
End Sub
Sub swap(a As Double, b As Double)
t = a: a = b: b = t
End Sub
Sub qsort(a() As Double, ByVal p As Integer, ByVal r As Integer)
Dim q As Integer
If p >= r Then Exit Sub
q = p
For i = p To r - 1
If a(i) < a(r) Then swap a(i), a(q): q = q + 1
Next i
swap a(q), a(r)
qsort a, p, q - 1
qsort a, q + 1, r
End Sub