The art of computer programming: V.1.: Fundamental algorithms - Knuth, Donald E. (Addison-Wesley, 1997)