Большой проект. Сложная система. Куча требований. Первое, что приходит в голову любому инженеру: "Надо декомпозировать!" Разложим по модулям, разделим на команды, каждый займется своим куском. Большую сложную задачу превратим в набор простых понятных подзадач. Так учат делать везде. Так делают все. Это основа основ. Но никто не говорит о том, что происходит дальше. Никто не предупреждает о скрытых ловушках, которые ждут на этом пути. А их там... много. Читать далее
В прошлой части мы рассмотрели общий подход к расчету эффективности алгоритмов с принципом "разделяй и властвуй", а также применение принципа к различным базовым алгоритмам. Сегодня поговорим о следующем приеме. Как известно, составная часть принципа, это поделить задачу на…
Декомпозиция задач — это процесс разбивки сложной задачи или проекта на более мелкие, управляемые и понятные подзадачи. Этот подход позволяет упростить выполнение задачи, сделать её более структурированной и снизить уровень стресса, связанного с её…
В этой статье рассматриваются сходства и различия двух подходов к решению алгоритмических задач: динамического программирования (dynamic programing) и принципа «разделяй и властвуй» (divide and conquer). Сравнение будем производить на примере, соответственно, двух алгоритмов: бинарного поиска…