Algorithms in Java : Fundamentals, Data Structures, Sorting, Searching - Sedgewick, Robert (Addison-Wesley)