Классификация типичных задач программирования

Материал из Викиучебника — открытых книг для открытого мира

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

  • полный перебор (итерация/рекурсия)
  • "разделяй и властвуй" (многократно ветвящаяся рекурсия)
  • "жадный" алгоритм
  • динамическое программирование
  • графы
  • математическая задача
  • обработка строк
  • вычислительная геометрия/компьютерная графика
  • прочие редкие сложные задачи
  • прочие несложные задачи (простые структуры данных, сортировки, рекурсия и пр.)