This version is similar, but uses binary search.
import java.util.Arrays; public class BinarySearch { private static int rank(int[] keys, int item) { // binary search implementation above ... } public static void main(String[] args) { int[] keys = StdIn.readInts(args[0]); Arrays.sort(keys); while(!StdIn.isEmpty()) { int item = StdIn.readInt(); if ( rank(keys, item) == - 1 ) { System.out.println(item); } } } }