The art of computer programming / Volume 2: [Volume 4A, Part 1]:, Seminumerical algorithms. [Combinatorial Algorithms] - Knuth, Donald E. (Addison-Wesley, 1998)