Sorting and Searching, volume 3 of The Art of Computer Programming (1998)

by D E Knuth