def radix_sort(lst): RADIX = 10 placement = 1 # get the maximum number max_digit = max(lst) while placement < max_digit: # declare and initialize buckets buckets = [list() for _ in range(RADIX)] # split lst between lists for i in lst: tmp = int((i / placement) % RADIX) buckets[tmp].append(i) # empty lists into lst array a = 0 for b in range(RADIX): buck = buckets[b] for i in buck: lst[a] = i a += 1 # move to next placement *= RADIX