«Розділяй і володарюй» — це алгоритмічний шаблон. В алгоритмічних методах проект полягає в тому, щоб взяти суперечку про величезний вхід, розбити вхідні дані на незначні частини, вирішити проблему на кожній з маленьких частин, а потім об’єднати часткові рішення в глобальне рішення. Такий механізм вирішення проблеми називається «Стратегія розділяй і володарюй».
Алгоритм «Розділяй і володарюй» складається зі суперечки за допомогою наступних трьох кроків.
Загалом, ми можемо слідувати розділяй і володарюй підхід у триетапний процес.
Приклади: Конкретні комп’ютерні алгоритми засновані на підході «Розділяй і володарюй»:
- Проблема максимуму та мінімуму
- Двійковий пошук
- Сортування (сортування злиттям, швидке сортування)
- Ханойська вежа.
Основи стратегії «Розділяй і володарюй»:
Стратегія «Розділяй і володарюй» має два основні принципи:
- Реляційна формула
- Умова зупинки
1. Формула відношення: Це формула, яку ми генеруємо з даної техніки. Після генерації формули ми застосовуємо стратегію D&C, тобто рекурсивно розбиваємо проблему та вирішуємо несправні підпроблеми.
2. Умова зупинки: Коли ми вирішуємо проблему за допомогою стратегії «Розділяй і володарюй», нам потрібно знати, протягом якого часу нам потрібно застосовувати «Розділяй і володарюй». Отже, умова, коли потрібно зупинити наші кроки рекурсії D&C, називається умовою зупинки.
Застосування підходу «Розділяй і володарюй»:
Наступні алгоритми базуються на концепції техніки розділяй і володарюй:
Переваги розділяй і володарюй
- Розділяй і володарюй, як правило, успішно розв’язує одну з найбільших проблем, наприклад, математичну головоломку Ханойської вежі. Важко розв’язувати складні проблеми, про які ви не маєте базового уявлення, але за допомогою підходу «розділяй і володарюй» це зменшило зусилля, оскільки він працює над розділенням основної проблеми на дві половини, а потім рекурсивним вирішенням. Цей алгоритм набагато швидший за інші алгоритми.
- Він ефективно використовує кеш-пам’ять, не займаючи багато місця, оскільки вирішує прості підпроблеми в кеш-пам’яті замість доступу до повільнішої основної пам’яті.
- Це більш досвідчений метод, ніж його колега Brute Force.
- Оскільки ці алгоритми перешкоджають паралелізму, він не передбачає жодних модифікацій і обробляється системами, що включають паралельну обробку.
Недоліки «Розділяй і володарюй».
- Оскільки більшість його алгоритмів розроблено з використанням рекурсії, це вимагає високого управління пам’яттю.
- Явний стек може надмірно використовувати простір.
- Це може навіть привести до збою системи, якщо рекурсія виконується значно більше, ніж стек, наявний у ЦП.