VBScriptで配列のソート

' クイックソートのインターフェース
Sub qsort(array)
quicksort array, 0, UBound(array)
End Sub

' クイックソート本体(再帰
Sub quicksort(array, first, last)
Dim point, f, l, tmp
point = array(first)
f = first: l = last
Do
While array(f) < point: f = f + 1: Wend
While array(l) > point: l = l - 1: Wend
If f >= l Then Exit Do
tmp = array(f): array(f) = array(l): array(l) = tmp
f = f + 1: l = l - 1
Loop
If first < f - 1 Then quicksort array, first, f - 1
If l + 1 < last Then quicksort array, l + 1, last
End Sub