--- Bubble sort: watch the list change, swap by swap ---
Calling bubble_sort([5, 1, 4, 2])
Defined bubble_sort.numbers = [5, 1, 4, 2]
Defined bubble_sort.end = 3
bubble_sort.numbers = [1, 5, 4, 2]
bubble_sort.numbers = [1, 4, 5, 2]
bubble_sort.numbers = [1, 4, 2, 5]
bubble_sort.end = 2
bubble_sort.numbers = [1, 2, 4, 5]
bubble_sort.end = 1
bubble_sort([5, 1, 4, 2]) returned [1, 2, 4, 5]

--- Binary search: how the window narrows ---
Calling binary_search([1, 3, 5, 7, 9, 11], 9)
Defined binary_search.items = [1, 3, 5, 7, 9, 11]
Defined binary_search.target = 9
Defined binary_search.low = 0
Defined binary_search.high = 5
Defined binary_search.middle = 2
binary_search.low = 3
binary_search.middle = 4
binary_search([1, 3, 5, 7, 9, 11], 9) returned 4

--- Radix sort: bucket by bucket, with a message after each pass ---
Calling radix_sort([170, 45, 75, 90, 802, 24, 2, 66])
Defined radix_sort.numbers = [170, 45, 75, 90, 802, 24, 2, 66]
Defined radix_sort.exp = 1
Defined radix_sort.buckets = [[], [], [], [], [], [], [], [], [], []]
Defined radix_sort.number = 170
Added 170 to the end of buckets[0]
radix_sort.number = 45
Added 45 to the end of buckets[5]
radix_sort.number = 75
Added 75 to the end of buckets[5]
radix_sort.number = 90
Added 90 to the end of buckets[0]
radix_sort.number = 802
Added 802 to the end of buckets[2]
radix_sort.number = 24
Added 24 to the end of buckets[4]
radix_sort.number = 2
Added 2 to the end of buckets[2]
radix_sort.number = 66
Added 66 to the end of buckets[6]
radix_sort.numbers = []
Defined radix_sort.bucket = [170, 90]
Added [170, 90] to numbers
radix_sort.bucket = []
radix_sort.bucket = [802, 2]
Added [802, 2] to numbers
radix_sort.bucket = []
radix_sort.bucket = [24]
Added 24 to numbers
radix_sort.bucket = [45, 75]
Added [45, 75] to numbers
radix_sort.bucket = [66]
Added 66 to numbers
radix_sort.bucket = []
After sorting on the 1s digit: [170, 90, 802, 2, 24, 45, 75, 66]
radix_sort.exp = 10
radix_sort.buckets = [[], [], [], [], [], [], [], [], [], []]
radix_sort.number = 170
Added 170 to the end of buckets[7]
radix_sort.number = 90
Added 90 to the end of buckets[9]
radix_sort.number = 802
Added 802 to the end of buckets[0]
radix_sort.number = 2
Added 2 to the end of buckets[0]
radix_sort.number = 24
Added 24 to the end of buckets[2]
radix_sort.number = 45
Added 45 to the end of buckets[4]
radix_sort.number = 75
Added 75 to the end of buckets[7]
radix_sort.number = 66
Added 66 to the end of buckets[6]
radix_sort.numbers = []
radix_sort.bucket = [802, 2]
Added [802, 2] to numbers
radix_sort.bucket = []
radix_sort.bucket = [24]
Added 24 to numbers
radix_sort.bucket = []
radix_sort.bucket = [45]
Added 45 to numbers
radix_sort.bucket = []
radix_sort.bucket = [66]
Added 66 to numbers
radix_sort.bucket = [170, 75]
Added [170, 75] to numbers
radix_sort.bucket = []
radix_sort.bucket = [90]
Added 90 to numbers
After sorting on the 10s digit: [802, 2, 24, 45, 66, 170, 75, 90]
radix_sort.exp = 100
radix_sort.buckets = [[], [], [], [], [], [], [], [], [], []]
radix_sort.number = 802
Added 802 to the end of buckets[8]
radix_sort.number = 2
Added 2 to the end of buckets[0]
radix_sort.number = 24
Added 24 to the end of buckets[0]
radix_sort.number = 45
Added 45 to the end of buckets[0]
radix_sort.number = 66
Added 66 to the end of buckets[0]
radix_sort.number = 170
Added 170 to the end of buckets[1]
radix_sort.number = 75
Added 75 to the end of buckets[0]
radix_sort.number = 90
Added 90 to the end of buckets[0]
radix_sort.numbers = []
radix_sort.bucket = [2, 24, 45, 66, 75, 90]
Added [2, 24, 45, 66, 75, 90] to numbers
radix_sort.bucket = [170]
Added 170 to numbers
radix_sort.bucket = []
radix_sort.bucket = [802]
Added 802 to numbers
radix_sort.bucket = []
After sorting on the 100s digit: [2, 24, 45, 66, 75, 90, 170, 802]
radix_sort.exp = 1000
radix_sort([170, 45, 75, 90, 802, 24, 2, 66]) returned [2, 24, 45, 66, 75, 90, 170, 802]
