The following lines were added (+) and removed (-):
=== bubblesort === <nowiki>' min and max are the minimum and maximum indexes</nowiki> <nowiki>' of the items that might still be out of order.</nowiki> <nowiki>Sub BubbleSort (List() As Long, ByVal min As Integer, _</nowiki> <nowiki> ByVal max As Integer)</nowiki> <nowiki>Dim last_swap As Integer</nowiki> <nowiki>Dim i As Integer</nowiki> <nowiki>Dim j As Integer</nowiki> <nowiki>Dim tmp As Long</nowiki> <nowiki></nowiki> <nowiki> ' Repeat until we are done.</nowiki> <nowiki> Do While min < max</nowiki> <nowiki> ' Bubble up.</nowiki> <nowiki> last_swap = min - 1</nowiki> <nowiki> ' For i = min + 1 To max</nowiki> <nowiki> i = min + 1</nowiki> <nowiki> Do While i <= max</nowiki> <nowiki> ' Find a bubble.</nowiki> <nowiki> If List(i - 1) > List(i) Then</nowiki> <nowiki> ' See where to drop the bubble.</nowiki> <nowiki> tmp = List(i - 1)</nowiki> <nowiki> j = i</nowiki> <nowiki> Do</nowiki> <nowiki> List(j - 1) = List(j)</nowiki> <nowiki> j = j + 1</nowiki> <nowiki> If j > max Then Exit Do</nowiki> <nowiki> Loop While List(j) < tmp</nowiki> <nowiki> List(j - 1) = tmp</nowiki> <nowiki> last_swap = j - 1</nowiki> <nowiki> i = j + 1</nowiki> <nowiki> Else</nowiki> <nowiki> i = i + 1</nowiki> <nowiki> End If</nowiki> <nowiki> Loop</nowiki> <nowiki> ' Update max.</nowiki> <nowiki> max = last_swap - 1</nowiki> <nowiki></nowiki> <nowiki> ' Bubble down.</nowiki> <nowiki> last_swap = max + 1</nowiki> <nowiki> ' For i = max - 1 To min Step -1</nowiki> <nowiki> i = max - 1</nowiki> <nowiki> Do While i >= min</nowiki> <nowiki> ' Find a bubble.</nowiki> <nowiki> If List(i + 1) < List(i) Then</nowiki> <nowiki> ' See where to drop the bubble.</nowiki> <nowiki> tmp = List(i + 1)</nowiki> <nowiki> j = i</nowiki> <nowiki> Do</nowiki> <nowiki> List(j + 1) = List(j)</nowiki> <nowiki> j = j - 1</nowiki> <nowiki> If j < min Then Exit Do</nowiki> <nowiki> Loop While List(j) > tmp</nowiki> <nowiki> List(j + 1) = tmp</nowiki> <nowiki> last_swap = j + 1</nowiki> <nowiki> i = j - 1</nowiki> <nowiki> Else</nowiki> <nowiki> i = i - 1</nowiki> <nowiki> End If</nowiki> <nowiki> Loop</nowiki> <nowiki> ' Update min.</nowiki> <nowiki> min = last_swap + 1</nowiki> <nowiki> Loop</nowiki> <nowiki>End Sub</nowiki>