Sorting and searching. - Knuth, Donald Ervin (Addison-Wesley, 1973)