Divide and Conquer je algoritmický vzorec. V algoritmických metodách je návrh vzít spor o velký vstup, rozdělit vstup na menší části, rozhodnout problém o každém z malých částí a poté sloučit po částech řešení do globálního řešení. Tento mechanismus řešení problému se nazývá Strategie rozděl a panuj.
Algoritmus Divide and Conquer se skládá ze sporu pomocí následujících tří kroků.
Obecně se můžeme řídit rozděl a panuj přístup ve třech krocích.
Příklady: Specifické počítačové algoritmy jsou založeny na přístupu Divide & Conquer:
- Problém maxima a minima
- Binární vyhledávání
- Řazení (sloučit řazení, rychlé řazení)
- Hanojská věž.
Základ strategie rozděl a panuj:
Strategie Divide & Conquer má dva základní principy:
- Relační vzorec
- Stav zastavení
1. Relační vzorec: Je to vzorec, který vygenerujeme z dané techniky. Po vygenerování formule aplikujeme strategii D&C, tj. rekurzivně rozbijeme problém a vyřešíme rozbité dílčí problémy.
2. Stav zastavení: Když problém prolomíme pomocí strategie Divide & Conquer, pak musíme vědět, že po jakou dobu potřebujeme rozdělení a panování aplikovat. Takže stav, kdy je potřeba zastavit naše rekurzivní kroky D&C, se nazývá Stopping Condition.
Aplikace přístupu rozděl a panuj:
Následující algoritmy jsou založeny na konceptu techniky rozděl a panuj:
Výhody rozděl a panuj
- Rozděl a panuj obvykle úspěšně řeší jeden z největších problémů, jako je Hanojská věž, matematický hlavolam. Je náročné řešit složité problémy, o kterých nemáte základní představu, ale s pomocí přístupu rozděl a panuj to snížilo úsilí, protože funguje na rozdělení hlavního problému na dvě poloviny a jejich následné rekurzivní řešení. Tento algoritmus je mnohem rychlejší než jiné algoritmy.
- Efektivně využívá vyrovnávací paměť, aniž by zabírala mnoho místa, protože řeší jednoduché dílčí problémy ve vyrovnávací paměti namísto přístupu k pomalejší hlavní paměti.
- Je dokonalejší než technika jeho protějšku Brute Force.
- Vzhledem k tomu, že tyto algoritmy inhibují paralelismus, nezahrnuje žádné úpravy a je řešen systémy zahrnujícími paralelní zpracování.
Nevýhody rozděl a panuj
- Protože většina jeho algoritmů je navržena se začleněním rekurze, vyžaduje to vysokou správu paměti.
- Explicitní zásobník může nadměrně využívat prostor.
- Může dokonce dojít ke zhroucení systému, pokud je rekurze prováděna přísněji než zásobník přítomný v CPU.