0123456789431622923277404330420814174807487649083452152892671144040583295380544684258
for i = 0 to numDigits(data.max)
  buckets = new Array(10)
  for x = 0 to length(data)
    num = getNum(data[j], i)
    if num !== undefined
      buckets[num].push(data[j])
  data = mergeBuckets()
---------------------
| SHORT EXPLANATION |
---------------------
1. Create ten empty arrays (the buckets which will later hold the numbers)
2. For each element in the list, move it into the correct bucket.
3. For each bucket (starting from 0), restore elements to the list.
4. Repeat steps 2 and 3 until all digits have been seen.

Elements:
5 
 20
Data Generation
Speed:
Slow 
 Fast