title: Radix Sort Java Implementation
body: <p>I am attempting to implement a Radix Sort on an ArrayList of random numbers from 1-100. I'm almost there, I just can't figure out the tens place sorting. Also, I put some println statements to test what is actually in my buckets and there are some weird numbers in some buckets that shouldn't be there.</p>
  
  <pre><code>import java.util.ArrayList;
  import java.util.Random;
  
  private static ArrayList&lt;Integer&gt; newArrayList;
  private static ArrayList&lt;Integer&gt;[] bucket = new ArrayList[10];
  
  
  public static ArrayList&lt;Integer&gt; generateArray(int n){
  newArrayList = new ArrayList&lt;Integer&gt;(n);
  Random rand = new Random();
  for (int i = 0; i&lt;n; i++){
  newArrayList.add(rand.nextInt(n + 1));
  }
  
  
  return newArrayList;
  }
  
  public static void sort(ArrayList&lt;Integer&gt; x){
  for (int i = 0; i&lt; 10; i++){
      bucket[i] = new ArrayList&lt;Integer&gt;();
  }
  
  int power = 1;
  for (int j = 0; j &lt; 3; j++){
  
      for (int k = 0; k &lt; x.size(); k++){
          bucket[(x.get(k)/power)%10].add(x.get(k));
      }
      x.clear();
  
      for (int l = 0; l&lt;10; l++){
          x.addAll(bucket[l]);
      }
  
      power = power*10;
      }
  
  System.out.println(bucket[0]); //diagnostics
  System.out.println(bucket[1]);
  System.out.println(bucket[2]);
  System.out.println(bucket[3]);
  System.out.println(bucket[4]);
  System.out.println(bucket[5]);
  System.out.println(bucket[6]);
  System.out.println(bucket[7]);
  System.out.println(bucket[8]);
  System.out.println(bucket[9]);
  }
  public static void main (String[] args)
    {
      ArrayList&lt;Integer&gt; new1 = new ArrayList&lt;Integer&gt;();
      new1 = generateArray(100);
      sort(new1);
    }
  
  
  
  }
  </code></pre>
  
  <p>Here is the output from the print statements. </p>
  
  <pre><code> [70, 90, 100, 100, 90, 70, 30, 20, 100, 100, 3, 3, 5, 6, 6, 6, 6, 7, 7, 8, 70, 90, 90, 70, 30, 20, 3, 3, 5, 6, 6, 6, 6, 7, 7, 8, 61, 51, 81, 81, 61, 31, 71, 31, 41, 41, 11, 11, 11, 21, 71, 11, 71, 11, 11, 11, 11, 12, 13, 14, 15, 15, 16, 19, 19, 32, 42, 92, 42, 22, 22, 32, 52, 12, 82, 42, 20, 21, 22, 22, 26, 27, 28, 29, 29, 53, 3, 63, 3, 63, 13, 73, 83, 33, 83, 30, 31, 31, 32, 32, 33, 34, 36, 36, 39, 64, 84, 14, 64, 34, 54, 64, 41, 41, 42, 42, 42, 45, 46, 49, 49, 5, 15, 15, 55, 45, 65, 95, 51, 52, 53, 54, 55, 56, 59, 6, 86, 36, 56, 26, 6, 6, 16, 6, 46, 36, 76, 66, 61, 61, 63, 63, 64, 64, 64, 65, 66, 67, 68, 69, 69, 97, 87, 67, 7, 87, 27, 77, 7, 97, 70, 70, 71, 71, 71, 73, 76, 77, 78, 79, 8, 78, 98, 98, 28, 68, 81, 81, 82, 83, 83, 84, 86, 87, 87, 19, 49, 19, 49, 99, 79, 59, 69, 29, 39, 69, 29, 90, 90, 92, 95, 97, 97, 98, 98, 99]
  
  [61, 51, 81, 81, 61, 31, 71, 31, 41, 41, 11, 11, 11, 21, 71, 11, 71, 11, 11, 11, 11, 12, 13, 14, 15, 15, 16, 19, 19, 100, 100, 100, 100]
  [32, 42, 92, 42, 22, 22, 32, 52, 12, 82, 42, 20, 21, 22, 22, 26, 27, 28, 29, 29]
  [53, 3, 63, 3, 63, 13, 73, 83, 33, 83, 30, 31, 31, 32, 32, 33, 34, 36, 36, 39]
  [64, 84, 14, 64, 34, 54, 64, 41, 41, 42, 42, 42, 45, 46, 49, 49]
  [5, 15, 15, 55, 45, 65, 95, 51, 52, 53, 54, 55, 56, 59]
  [6, 86, 36, 56, 26, 6, 6, 16, 6, 46, 36, 76, 66, 61, 61, 63, 63, 64, 64, 64, 65, 66, 67, 68, 69, 69]
  [97, 87, 67, 7, 87, 27, 77, 7, 97, 70, 70, 71, 71, 71, 73, 76, 77, 78, 79]
  [8, 78, 98, 98, 28, 68, 81, 81, 82, 83, 83, 84, 86, 87, 87]
  [19, 49, 19, 49, 99, 79, 59, 69, 29, 39, 69, 29, 90, 90, 92, 95, 97, 97, 98, 98, 99]
  </code></pre>