|
|
快速排序
Public Sub QuickSort(ByRef aStrSort() As String, ByVal lngleft As Long, ByVal lngright As Long)
Dim i As Long
Dim j As Long
Dim temp As String
i = lngleft
j = lngright
temp = aStrSort(i)
NextStep:
Do Until i >= j
While (aStrSort(j) > temp And j > i)
j = j - 1
Wend
If j > i Then
aStrSort(i) = aStrSort(j)
aStrSort(j) = temp
i = i + 1
End If
While (aStrSort(i) < temp And j > i)
i = i + 1
Wend
If j > i Then
aStrSort(j) = aStrSort(i)
aStrSort(i) = temp
j = j - 1
End If
Loop
If lngleft < i - 1 Then QuickSort aStrSort, lngleft, i - 1
If lngright > i + 1 Then QuickSort aStrSort, i + 1, lngright
End Sub |
|