如何在VB中用递归对数组排序

来源:百度知道 编辑:UC知道 时间:2024/06/01 12:12:28

给你一个吧
快速排序法的递归算法

Public Sub QuickSort2(ByRef aStrSort() As Long, ByVal lngleft As Long, ByVal lngright As Long)
Dim i As Long
Dim j As Long
Dim temp As Long
i = lngleft
j = lngright
temp = aStrSort(i)

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 QuickSort2 aStrSort, lngleft, i - 1
If lngright > i + 1 Then QuickSort2 aStrSort, i + 1, lngright
End Sub