The Art of Computer Programming. Volume 3: Sorting and Searching - Knuth, Donald E. (Addison-Wesley Publishing Company, Inc.)