Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Dec 4, 2000

Sort The Contents of an Array

 
Private Sub BubbleSort(varArray As Variant, bAscending As Boolean)
    'Option Base 0 is assumed    
    Dim HoldEntry As Integer
    Dim SwapOccurred As Boolean
    Dim iItteration As Integer
    Dim i As Integer
 
    SwapOccurred = True
    iItteration = 1
    
    Do Until Not SwapOccurred
        SwapOccurred = False
        For i = LBound(varArray) To UBound(varArray) - iItteration Step 1
            If bAscending Then
                If varArray(i) > varArray(i + 1) Then
                    HoldEntry = varArray(i)
                    varArray(i) = varArray(i + 1)
                    varArray(i + 1) = HoldEntry
                    SwapOccurred = True
                End If
            Else
                If varArray(i + 1) > varArray(i) Then
                    HoldEntry = varArray(i)
                    varArray(i) = varArray(i + 1)
                    varArray(i + 1) = HoldEntry
                    SwapOccurred = True
                End If
            End If
        Next i
        iItteration = iItteration + 1   'reduce iteration each time as greatest/lowest
                                        'item already at end/start of array
    Loop
    
End Sub
 
'to call ....
Private Sub cmdBubbleSort_Click()
 
    Dim lArray(999) As Long, iCnt As Integer
    
    'populate array with dummy data
    For iCnt = LBound(lArray) To UBound(lArray) Step 1
        lArray(iCnt) = Int((1000 * Rnd) + 1)
    Next iCnt
 
    Call BubbleSort(lArray, True)
    
    'display result
    For iCnt = LBound(lArray) To UBound(lArray) Step 1
        lstResult.AddItem lArray(iCnt)
    Next iCnt
 
End Sub
Alex Whyte
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date