Rozdeľuj a panuj je algoritmický vzor. V algoritmických metódach je návrhom vziať spor na obrovský vstup, rozdeliť vstup na menšie časti, rozhodnúť o probléme na každom z malých častí a potom zlúčiť po častiach riešenia do globálneho riešenia. Tento mechanizmus riešenia problému sa nazýva Stratégia rozdeľuj a panuj.
Algoritmus Divide and Conquer pozostáva zo sporu pomocou nasledujúcich troch krokov.
Vo všeobecnosti môžeme sledovať rozdeľ a panuj prístup v trojkrokovom procese.
Príklady: Špecifické počítačové algoritmy sú založené na prístupe Divide & Conquer:
- Problém maxima a minima
- Binárne vyhľadávanie
- Triedenie (zlúčiť triedenie, rýchle triedenie)
- Hanojská veža.
Základ stratégie rozdeľuj a panuj:
Stratégia Divide & Conquer má dva základné princípy:
- Relačný vzorec
- Stav zastavenia
1. Relačný vzorec: Je to vzorec, ktorý vygenerujeme z danej techniky. Po vygenerovaní vzorca aplikujeme stratégiu D&C, t.j. rekurzívne rozbijeme problém a vyriešime rozbité podproblémy.
2. Stav zastavenia: Keď problém prelomíme pomocou stratégie Rozdeľ a panuj, potom musíme vedieť, že na aký čas musíme aplikovať rozdelenie a panuj. Takže stav, kedy je potrebné zastaviť naše rekurzívne kroky D&C, sa nazýva zastavovací stav.
Aplikácie prístupu rozdeľuj a panuj:
Nasledujúce algoritmy sú založené na koncepte techniky rozdeľovania a panovania:
Výhody rozdeľovania a panovania
- Rozdeľuj a panuj zvyčajne úspešne vyriešiť jeden z najväčších problémov, akým je Hanojská veža, matematický hlavolam. Je náročné riešiť komplikované problémy, o ktorých nemáte žiadnu základnú predstavu, ale s pomocou prístupu rozdeľuj a panuj to znížilo námahu, pretože funguje na rozdelení hlavného problému na dve polovice a následne na ich rekurzívne riešenie. Tento algoritmus je oveľa rýchlejší ako iné algoritmy.
- Efektívne využíva vyrovnávaciu pamäť bez toho, aby zaberala veľa miesta, pretože rieši jednoduché čiastkové problémy vo vyrovnávacej pamäti namiesto prístupu k pomalšej hlavnej pamäti.
- Je zručnejšia ako technika jeho náprotivku Brute Force.
- Keďže tieto algoritmy inhibujú paralelizmus, nezahŕňajú žiadne úpravy a je riešený systémami s paralelným spracovaním.
Nevýhody rozdeľovania a panovania
- Keďže väčšina jeho algoritmov je navrhnutá so začlenením rekurzie, vyžaduje si to vysokú správu pamäte.
- Explicitný zásobník môže nadmerne využívať priestor.
- Môže dokonca dôjsť k zrúteniu systému, ak je rekurzia vykonaná prísne vo väčšej miere ako zásobník prítomný v CPU.