I started off not really understanding how bucket sort works; the concept of partitioning items by placing them into different buckets made sense, but what is the way in which the program decides on bucket sizes? I couldn't understand the logic even when I looked at examples of others' bucket sorts. So I decided to design my solution in a way that didn't pre-make buckets before partitioning. Instead, it sends items to their corresponding indexes—so 66 would be sent to bucket[66], etc.

Does this still count as a bucket sort? Is this an example of another type of sorting algorithm? It makes sense and seems to be optimized for speed, as claiming new slots in an existing array should be faster than doing calculations to figure out where an item should go. Either way, it's simple and it works, so it's satisfying enough, even if it isn't an actual bucket sort.