Insertion Sort



Option Explicit
Sub Main()
    Dim someArr, x, ArrStr
    someArr = Array(31, 25, 12, 22, 11)
    Call insertionSort(someArr)
    For Each x In someArr
        ArrStr = ArrStr & x & ", "
    Next
    ArrStr = Left(ArrStr, Len(ArrStr) - 2)
    MsgBox "The Array after Insertion Sort is : " & vbCrLf & ArrStr
End Sub
Sub insertionSort(ByRef numbers)
  Dim i, j, index
  For i = 1 To UBound(numbers)
    index = numbers(i)
    j = i
    Do While j > 0 And numbers(j - 1) > index
        numbers(j) = numbers(j - 1)
        j = j - 1
        If j = 0 Then Exit Do
    Loop
    numbers(j) = index
  Next
End Sub