Divide and Conquer on algoritminen malli. Algoritmisissa menetelmissä suunnitellaan kiistaa valtavasta syötteestä, jakaa syöte pienempiin osiin, päättää kunkin pienen palan ongelma ja sitten yhdistää palakohtaiset ratkaisut globaaliksi ratkaisuksi. Tätä ongelmanratkaisumekanismia kutsutaan Divide & Conquer -strategiaksi.
Divide and Conquer -algoritmi koostuu kiistasta seuraavien kolmen vaiheen avulla.
Yleensä voimme seurata hajota ja hallitse lähestymistapa kolmivaiheisessa prosessissa.
Esimerkkejä: Tietyt tietokonealgoritmit perustuvat Divide & Conquer -lähestymistapaan:
- Suurin ja pienin ongelma
- Binäärihaku
- Lajittelu (yhdistä lajittelu, nopea lajittelu)
- Hanoin torni.
Divide & Conquer -strategian perusteet:
Divide & Conquer -strategiassa on kaksi perusperiaatetta:
- Suhdekaava
- Pysähdysehto
1. Suhdekaava: Se on kaava, jonka luomme annetusta tekniikasta. Kaavan luomisen jälkeen käytämme D&C-strategiaa, eli puramme ongelman rekursiivisesti ja ratkaisemme rikkinäiset osaongelmat.
2. Pysähdysehto: Kun ratkaisemme ongelman Divide & Conquer -strategian avulla, meidän on tiedettävä, että kuinka kauan meidän on sovellettava Divide & Conquer -ohjelmaa. Joten tilaa, jossa tarvetta pysäyttää D&C:n rekursiovaiheet, kutsutaan pysäytysehdoksi.
Hajota ja hallitse -lähestymistavan sovellukset:
Seuraavat algoritmit perustuvat Divide and Conquer -tekniikan käsitteeseen:
Hajota ja hallitse -ohjelman edut
- Divide and Conquer yleensä ratkaisee onnistuneesti yhden suurimmista ongelmista, kuten Hanoin tornin, matemaattisen palapelin. On haastavaa ratkaista monimutkaisia ongelmia, joista sinulla ei ole perusideaa, mutta hajota ja hallitse -lähestymistavan avulla se on vähentänyt vaivaa, koska se pyrkii jakamaan pääongelman kahteen puolikkaaseen ja ratkaisemaan ne sitten rekursiivisesti. Tämä algoritmi on paljon nopeampi kuin muut algoritmit.
- Se käyttää välimuistia tehokkaasti viemättä paljon tilaa, koska se ratkaisee välimuistin yksinkertaiset aliongelmat hitaamman päämuistin käyttämisen sijaan.
- Se on taitavampi kuin vastineensa Brute Force -tekniikka.
- Koska nämä algoritmit estävät rinnakkaisuuden, siihen ei liity mitään muutoksia ja niitä käsittelevät järjestelmät, jotka sisältävät rinnakkaiskäsittelyn.
Hajota ja hallitse -ohjelman haitat
- Koska suurin osa sen algoritmeista on suunniteltu sisällyttämällä rekursio, se vaatii korkeaa muistinhallintaa.
- Selkeä pino voi käyttää tilaa liikaa.
- Se voi jopa kaataa järjestelmän, jos rekursio suoritetaan tiukasti suurempi kuin CPU:ssa oleva pino.