BubbleSort – Sort Arrays using the BubbleSort Algorithm

' Bubble Sort an array of any type' BubbleSort is especially convenient with small arrays (1,000' items or fewer) or with arrays that are already almost sorted'' NUMELS is the index of the last item to be sorted, and is' useful if the array is only partially filled.'' Works with any kind of array, except UDTs and fixed-length' strings, and including objects if your are sorting on their' default property. String are sorted in case-sensitive mode.'' You can write faster procedures if you modify the first two lines' to account for a specific data type, eg.' Sub BubbleSortS(arr() As Single, Optional numEls As Variant,'  '     Optional descending As Boolean)'   Dim value As SingleSub BubbleSort(arr As Variant, Optional numEls As Variant, _    Optional descending As Boolean)    Dim value As Variant    Dim index As Long    Dim firstItem As Long    Dim indexLimit As Long, lastSwap As Long    ' account for optional arguments    If IsMissing(numEls) Then numEls = UBound(arr)    firstItem = LBound(arr)    lastSwap = numEls    Do        indexLimit = lastSwap - 1        lastSwap = 0        For index = firstItem To indexLimit            value = arr(index)            If (value > arr(index + 1)) Xor descending Then                ' if the items are not in order, swap them                arr(index) = arr(index + 1)                arr(index + 1) = value                lastSwap = index            End If        Next    Loop While lastSwapEnd Sub

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: