Да, есть разница.
Алгоритм - это рецепт для выполнения некоторой задачи - однозначного конечного набора инструкций, который достигает определенной цели, работая с входом и создавая выход. Обычно алгоритм выражается в не зависящем от языка псевдокоде, который затем может быть реализован на выбранном вами языке.
A шаблон проектирования - это способ структурирования вашего кода для элегантного выражения взаимосвязи между функциональными компонентами. Вы можете использовать шаблоны проектирования в реализации алгоритма. Например, вы можете использовать алгоритм обхода дерева по порядку, чтобы обеспечить посещение всех узлов древовидной структуры данных в определенном порядке. Вы также можете реализовать шаблон проектирования visitor , чтобы выразить, как ваша реализация возвращает управление вызывающему контексту, чтобы указать, что узел был посещен. Это не часть алгоритма, а часть разработки программного обеспечения и того, как вы структурируете интерфейсы, которые может использовать каждый компонент вашего программного обеспечения.
Алгоритмы и шаблоны проектирования являются ортогональными, хотя они вполне могут быть использованы одновременно.