Введение Алгоритмы — это фундаментальная часть программирования, которая позволяет решать разнообразные задачи. В данной статье мы рассмотрим определения, применение, формулы и асимптотическую сложность различных алгоритмов программирования. 1. Сортировка 1.1 Сортировка слиянием Описание: эффективный алгоритм сортировки, основанный на принципе "разделяй и властвуй". Разбивает массив на две половины, рекурсивно сортирует каждую половину, а затем объединяет их в отсортированный массив. Применение:...
Любая сложная задача всегда может быть разбита на несколько простых задач. Те в свою очередь могут быть разбиты на ещё1 более мелкие задачи. В олимпиадных задачах по программированию очень часто требуется найти НОД(наибольший общий делитель) или НОК(наименьшее общее кратное) двух или более чисел. Это может быть задача по фасовке предметам по ящикам (целочисленное деление) или формирование людей в бригады. Короче там где нужно искать целые числа после деления. Пример двух чисел 6 и 15. Очевидно, что НОД (наибольшим общим делителем) будет число 3...