bucket sort with array.  best so far.  should keep it if sable approves