The art of computer programming, volume 3: (2nd ed.) sorting and searching (1998)

by D E Knuth