The Art of Computer Programming: Volume 3: Sorting and Searching (2nd Edition)