when I run this program, and type in the command line: run BinarySearch tinyW.txt<tinyT.txt. It returns a memory location, I do not know why
<pre><code>import java.util.Arrays;

public class BinarySearch
{
  public static void main(String[] args)
  {
    int[] whitelist = In.readInts(args[0]);

    Arrays.sort(whitelist);

    StdOut.println(whitelist);
    while(!StdIn.isEmpty())
    {
      int key = StdIn.readInt();
      if (rank(key, whitelist) &lt; 0)
        StdOut.println(key);
    }
  }

  public static int rank(int key, int[] a)
  {
    return rank(key, a, 0, a.length-1);
  }

  public static int rank(int key, int[] a, int low, int high)
  {
    if (low &gt; high) return -1;
    int mid = low + (high - low)/2;
    if      (key &lt; a[mid]) return rank(key, a, low, mid - 1);
    else if (key &gt; a[mid]) return rank(key, a, mid + 1, high);
    else                   return mid;
  }
}
</code></pre>
