'快速排序
Public Function QuickSortASC(vData As Variant, Low As Long, Hi As Long) As Boolean
If Not IsArray(vData) Then Exit Function
Dim lTmpLow As Long
Dim lTmpHi As Long
Dim lTmpMid As Long
Dim vTempVal As Long
Dim vTmpHold As Long
On Error GoTo QuickSort
QuickSortASC = False
lTmpLow = Low
lTmpHi = Hi
If Hi <= Low Then Exit Function
If lTmpMid = 0 Then
lTmpMid = (Low + Hi) \ 2
End If
vTempVal = vData(lTmpMid)
Do While (lTmpLow <= lTmpHi)
Do While (vData(lTmpLow) < vTempVal And lTmpLow < Hi)
lTmpLow = lTmpLow + 1
Loop
Do While (vTempVal < vData(lTmpHi) And lTmpHi > Low)
lTmpHi = lTmpHi - 1
Loop
If (lTmpLow <= lTmpHi) Then
vTmpHold = vData(lTmpLow)
vData(lTmpLow) = vData(lTmpHi)
vData(lTmpHi) = vTmpHold
lTmpLow = lTmpLow + 1
lTmpHi = lTmpHi - 1
End If
Loop
If (Low < lTmpHi) Then
QuickSortASC vData, Low, lTmpHi
End If
If (lTmpLow < Hi) Then
QuickSortASC vData, lTmpLow, Hi
End If
QuickSortASC = True
Exit Function
QuickSort:
MsgBox "ÊäÈëÁË´íÎóµÄÊý¾Ý", vbExclamation, "´íÎó"
End Function
正文
''快速排序2005-09-25 22:51:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/iamben250/5341.html
阅读(2597) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论