Завдання цієї книги просте: розібрати «ідеї», що лежать в основі програм, і показати, як доводити їхню правильність.
Як математично довести, що заданий алгоритм робить те, що він має робити? І чому це так важливо?
Додається правильність класичних алгоритмів: цілеспрямованого поділу, алгоритм Евкліда, ранжування, ін. Крім традиційних алгоритмів, як-от жадібні алгоритми, алгоритми динамічного програмування й алгоритми «розділяй і володарюй», книга досліджує також рандомізовані й онлайнові алгоритми. Перші стали повсякденними через появу криптографії, а другі необхідні в багатьох галузях, починаючи з операційних систем і закінчуючи фондовим ринком.
Книга вкрита завданнями. Більшість завдань теоретичні, але багато хто потребує реалізації алгоритму; для таких завдань використовується мова програмування
Python 3. Попри свою стислість, видання є математично суворим. Бажано попереднє знайомство з дискретною математикою.
Видання призначене для студентів вузів, фахівців у галузі інформатики
та математики, а також широкого кола програмістів і розробників.