01 Mar 2010 @ 11:33 AM 

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

Posted By: admin
Last Edit: 01 Mar 2010 @ 11:33 AM

EmailPermalinkComments (0)
Tags
Categories: D SortingDataUsingVB

 Last 50 Posts
 Back
 Back
Change Theme...
  • Users » 1
  • Posts/Pages » 33
  • Comments » 0
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight