You are here:
Visual
Basic > VB6
(Beginners Tutorial)
<< Previous
| Contents | Next >>
Sorting Data using Arrays - Visual Basic 6
Sorting is an operation that you often perform on arrays. As you probably know,
there are dozens of different sort algorithms, each one with its strengths and
weaknesses. I found that the Shell Sort algorithm works well in most cases, and
I've prepared a generic routine that sorts any one-dimensional array of a data
type compatible with the Variant type, either in ascending or descending order:
Sub ShellSortAny(arr As Variant, numEls As Long, descending As Boolean)
Dim index As Long, index2 As Long, firstItem As Long
Dim distance As Long, value As Variant
' Exit if it is not an array.
If VarType(arr) < vbArray Then Exit Sub
firstItem = LBound(arr)
' Find the best value for distance.
Do
distance = distance * 3 + 1
Loop Until distance > numEls
' Sort the array.
Do
distance = distance \ 3
For index = distance + firstItem To numEls + firstItem - 1
value = arr(index)
index2 = index
Do While (arr(index2 - distance) > value) Xor descending
arr(index2) = arr(index2 - distance)
index2 = index2 - distance
If index2 - distance < firstItem Then Exit Do
Loop
arr(index2) = value
Next
Loop Until distance = 1
End Sub
More Topics on Visual Basic 6 Arrays
<< Previous | Contents
| Next >>
|