Классификация типичных задач программирования
Здесь подготовлена небольшая памятка по классификации задач программирования. Цель памятки - применять ее для выработки устойчивого навыка отнесения любой незнакомой задачи к известному классу задач. Очень многие задачи в программировании могут быть отнесены к разным группам однотипных задач (или даже могут быть их комбинацией) и уверенное машинальное отнесение ранее незнакомой задачи к какой либо группе позволяет эффективнее подбирать способы решения для нее. Часто встречающиеся классы задач:
- полный перебор (итерация/рекурсия)
- "разделяй и властвуй" (многократно ветвящаяся рекурсия)
- "жадный" алгоритм
- динамическое программирование
- графы
- математическая задача
- обработка строк
- вычислительная геометрия/компьютерная графика
- прочие редкие сложные задачи
- прочие несложные задачи (простые структуры данных, сортировки, рекурсия и пр.)