Dziel i rządź to wzorzec algorytmiczny. W metodach algorytmicznych projekt polega na podjęciu sporu dotyczącego ogromnego wkładu, podzieleniu go na mniejsze części, rozstrzygnięciu problemu w każdym z małych fragmentów, a następnie połączeniu fragmentarycznych rozwiązań w rozwiązanie globalne. Ten mechanizm rozwiązywania problemu nazywa się strategią dziel i zwyciężaj.
Algorytm „Dziel i rządź” polega na sporze składającym się z trzech następujących kroków.
Generalnie możemy podążać za dziel i rządź podejście składające się z trzech etapów.
Przykłady: Specyficzne algorytmy komputerowe opierają się na podejściu Dziel i Rządź:
- Problem maksymalny i minimalny
- Wyszukiwanie binarne
- Sortowanie (sortowanie przez scalanie, sortowanie szybkie)
- Wieża Hanoi.
Podstawy strategii „Dziel i rządź”:
Istnieją dwie podstawowe zasady strategii „Dziel i rządź”:
- Formuła relacyjna
- Warunek zatrzymania
1. Wzór relacyjny: Jest to formuła, którą generujemy na podstawie danej techniki. Po wygenerowaniu Formuły stosujemy Strategię D&C, czyli rozbijamy problem rekurencyjnie i rozwiązujemy zepsute podproblemy.
2. Warunek zatrzymania: Kiedy rozwiązujemy problem za pomocą strategii Dziel i rządź, musimy wiedzieć, przez jaki czas musimy stosować strategię Dziel i rządź. Zatem stan, w którym konieczne jest zatrzymanie kroków rekurencji D&C, nazywany jest stanem zatrzymania.
Zastosowania podejścia „dziel i zwyciężaj”:
Poniższe algorytmy opierają się na koncepcji Techniki Dziel i Rządź:
Zalety Dziel i rządź
- Dziel i rządź zwykle skutecznie rozwiązuje jeden z największych problemów, takich jak Wieża Hanoi, zagadka matematyczna. Rozwiązywanie skomplikowanych problemów, o których nie ma się podstawowego pojęcia, jest wyzwaniem, ale dzięki podejściu „dziel i zwyciężaj” zmniejsza to wysiłek, ponieważ polega na podzieleniu głównego problemu na dwie połowy, a następnie rozwiązywaniu ich rekurencyjnie. Algorytm ten jest znacznie szybszy niż inne algorytmy.
- Efektywnie wykorzystuje pamięć podręczną, nie zajmując dużo miejsca, ponieważ rozwiązuje proste problemy w obrębie pamięci podręcznej, zamiast uzyskiwać dostęp do wolniejszej pamięci głównej.
- Jest bardziej sprawna niż jej odpowiednik, technika Brute Force.
- Ponieważ algorytmy te hamują równoległość, nie wymaga to żadnych modyfikacji i jest obsługiwany przez systemy obejmujące przetwarzanie równoległe.
Wady dziel i zwyciężaj
- Ponieważ większość algorytmów została zaprojektowana z wykorzystaniem rekurencji, wymaga to dużego zarządzania pamięcią.
- Wyraźny stos może nadużywać przestrzeni.
- Może nawet spowodować awarię systemu, jeśli rekurencja zostanie wykonana na poziomie większym niż stos obecny w procesorze.