Searching and sorting, volume 3 of The art of computer programming (1973)

by D E Knuth