Разделяй и владей е алгоритмичен модел. При алгоритмичните методи дизайнът е да се вземе спор за огромен вход, да се раздели входът на незначителни части, да се реши проблемът на всяка от малките части и след това да се слеят решенията на части в глобално решение. Този механизъм за решаване на проблема се нарича стратегия Разделяй и владей.
Алгоритъмът „Разделяй и владей“ се състои от спор, използващ следните три стъпки.
Като цяло можем да следваме разделяй и владей подход в процес от три стъпки.
Примери: Конкретните компютърни алгоритми се основават на подхода Разделяй и владей:
- Максимален и минимален проблем
- Двоично търсене
- Сортиране (сортиране чрез сливане, бързо сортиране)
- Кулата на Ханой.
Основа на стратегията „Разделяй и владей“:
Има две основни принципи на стратегията 'Разделяй и владей':
- Релационна формула
- Състояние на спиране
1. Релационна формула: Това е формулата, която генерираме от дадената техника. След генериране на формула ние прилагаме D&C стратегия, т.е. прекъсваме проблема рекурсивно и решаваме повредените подпроблеми.
2. Условие за спиране: Когато разрешим проблема с помощта на стратегията Разделяй и владей, тогава трябва да знаем колко време трябва да прилагаме Разделяй и владей. Така че условието, при което е необходимо да спрем нашите стъпки на рекурсия на D&C, се нарича Условие за спиране.
Приложения на подхода „Разделяй и владей“:
Следните алгоритми се основават на концепцията за техниката Разделяй и владей:
Предимства на Разделяй и владей
- „Разделяй и владей“ има тенденция да решава успешно един от най-големите проблеми, като кулата на Ханой, математически пъзел. Предизвикателство е да се решават сложни проблеми, за които нямате основна представа, но с помощта на подхода „разделяй и владей“ той намали усилията, тъй като работи върху разделянето на основния проблем на две половини и след това ги решава рекурсивно. Този алгоритъм е много по-бърз от другите алгоритми.
- Той ефективно използва кеш паметта, без да заема много място, защото решава прости подпроблеми в рамките на кеш паметта, вместо да осъществява достъп до по-бавната основна памет.
- Тя е по-умела от тази на другата си техника Brute Force.
- Тъй като тези алгоритми възпрепятстват паралелизма, той не включва никаква модификация и се обработва от системи, включващи паралелна обработка.
Недостатъци на разделяй и владей
- Тъй като повечето от неговите алгоритми са проектирани чрез включване на рекурсия, това налага високо управление на паметта.
- Изричният стек може да използва прекомерно пространството.
- Може дори да се срине системата, ако рекурсията е извършена строго по-голяма от наличния стек в процесора.