Sadaliet un iekarot ir algoritmisks modelis. Algoritmiskajās metodēs tiek izstrādāts strīds par milzīgu ievadi, sadalot ievadi mazākās daļās, izlemjot problēmu katrā mazajā daļā un pēc tam apvienot pa daļām risinājumus globālā risinājumā. Šo problēmas risināšanas mehānismu sauc par “Skaldi un iekaro” stratēģiju.
Sadalīšanas un iekarošanas algoritms sastāv no strīda, izmantojot šādas trīs darbības.
Parasti mēs varam sekot sadali un valdi pieeja trīs soļu procesā.
Piemēri: Konkrētie datoru algoritmi ir balstīti uz Divide & Conquer pieeju:
- Maksimālā un minimālā problēma
- Binārā meklēšana
- Kārtošana (apvienot kārtošanu, ātrā kārtošana)
- Hanojas tornis.
“Skaldi un valdi” stratēģijas pamati:
Ir divi “Skaldi un iekaro” stratēģijas pamatprincipi:
- Relāciju formula
- Apstāšanās nosacījums
1. Relāciju formula: Tā ir formula, ko mēs ģenerējam no dotās tehnikas. Pēc formulas ģenerēšanas mēs pielietojam D&C stratēģiju, t.i., mēs rekursīvi pārtraucam problēmu un atrisinām sadalītās apakšproblēmas.
2. Apstāšanās nosacījums: Kad mēs atrisinām problēmu, izmantojot stratēģiju Divide & Conquer, mums ir jāzina, ka uz cik ilgu laiku mums ir jāpiemēro sadalīt un iekarot. Tātad stāvoklis, kad nepieciešamība apturēt mūsu D&C rekursijas soļus, tiek saukta par apstāšanās nosacījumu.
Skaldi un valdi pieejas pielietojumi:
Tālāk minētie algoritmi ir balstīti uz sadalīšanas un iekarošanas tehnikas koncepciju:
Skaldi un valdi priekšrocības
- “Skaldi un iekarot” mēdz veiksmīgi atrisināt vienu no lielākajām problēmām, piemēram, Hanojas torni, matemātisko mīklu. Ir grūti atrisināt sarežģītas problēmas, par kurām jums nav pamata ideju, taču ar skaldi un valdi pieejas palīdzību tas ir samazinājis pūles, jo tā strādā, sadalot galveno problēmu divās daļās un pēc tam tās atrisinot rekursīvi. Šis algoritms ir daudz ātrāks nekā citi algoritmi.
- Tas efektīvi izmanto kešatmiņu, neaizņemot daudz vietas, jo tas atrisina vienkāršas kešatmiņas apakšproblēmas, nevis piekļūst lēnākajai galvenajai atmiņai.
- Tas ir prasmīgāks nekā tā līdziniece Brute Force tehnika.
- Tā kā šie algoritmi kavē paralēlismu, tas neietver nekādas izmaiņas, un tos apstrādā sistēmas, kas ietver paralēlu apstrādi.
Skaldi un valdi trūkumi
- Tā kā lielākā daļa tā algoritmu ir izstrādāti, iekļaujot rekursiju, tāpēc ir nepieciešama augsta atmiņas pārvaldība.
- Izteikta kopa var pārmērīgi izmantot vietu.
- Tas pat var izraisīt sistēmas avāriju, ja rekursija tiek veikta stingri lielāka par CPU esošo steku.