- ©«¤l
- 354
- ¥DÃD
- 5
- ºëµØ
- 0
- ¿n¤À
- 387
- ÂI¦W
- 0
- §@·~¨t²Î
- windows7
- ³nÅ骩¥»
- vba,vb,excel2007
- ¾\ŪÅv
- 20
- ©Ê§O
- ¨k
- µù¥U®É¶¡
- 2017-1-8
- ³Ì«áµn¿ý
- 2024-8-2
 
|
¦^´_ 10# dou10801
Sub SortArray()
arr = Array("a", "b", "c", "d", "e", "C", "b")
'arr = Y.keys()
QuickSort arr, LBound(arr), UBound(arr)
Debug.Print Join(arr, ",")
End Sub
Function QuickSort(ByRef ar, ByVal iLo As Long, ByVal iHi As Long)
Dim pivot As Variant, lo, hi As Long
lo = iLo: hi = iHi
pivot = UCase(ar((lo + hi) \ 2))
While lo <= hi
While (UCase(ar(lo)) < pivot And UCase(lo) < UCase(iHi)): lo = lo + 1: Wend
While (UCase(ar(hi)) > pivot And UCase(hi) > UCase(iLo)): hi = hi - 1: Wend
If (lo <= hi) Then
tmp = ar(lo): ar(lo) = ar(hi): ar(hi) = tmp
lo = lo + 1: hi = hi - 1: tmp = ""
End If
Wend
If hi > iLo Then QuickSort ar, iLo, hi
If lo < iHi Then QuickSort ar, lo, iHi
End Function |
|