"Устойчивость супружеских пар и другие комбинаторные задачи. Введение в математический анализ алгоритмов" - читать интересную книгу автора (Кнут Д.(Knuth D.E.) )