Now that we’ve finished writing our radix sort we’re finished for the day… or are we?
Now that we’ve gotten our sort working let’s test it out with some new data.
IndexError? Did we forget something?
We did! Some of the numbers that we’re sorting are going to be shorter than other numbers.
We can fix it though! First, we should comment out the line we added to test the sort.
Where we defined
digit to be the value of
number_as_a_string at index
index we need to now wrap that definition in a
try block and, indented in that block, leave your original definition of
try block, we’ll want to handle the possibility of an
IndexError. What does it mean if we get an index error here?
It means the value for
index is actually
Handle the exception by adding an
except IndexError block, in this case assigning digit to be
Excellent! Now let’s try uncommenting the line where we sort
unordered_list. Print out the results.
Great job! We created an algorithm that:
- Takes numbers in an input list.
- Passes through each digit in those numbers, from least to most significant.
- Looks at the values of those digits.
- Buckets the input list according to those digits.
- Renders the results from that bucketing.
- Repeats this process until the list is sorted.
And that’s what a radix sort does! Feel free to play around with the solution code, see if there’s anything you can improve about the code or a different way of writing it you want to try.