Divide and Conquer er et algoritmisk mønster. I algoritmiske metoder er designet å ta en tvist om et stort input, bryte innspillet i mindre biter, bestemme problemet på hver av de små bitene, og deretter slå sammen de bitvise løsningene til en global løsning. Denne mekanismen for å løse problemet kalles Divide & Conquer-strategien.
Divide and Conquer-algoritmen består av en tvist ved å bruke følgende tre trinn.
Generelt kan vi følge splitt og hersk tilnærming i en tre-trinns prosess.
Eksempler: De spesifikke datamaskinalgoritmene er basert på Divide & Conquer-tilnærmingen:
- Maksimum og minimum problem
- Binært søk
- Sortering (sammenslå sortering, rask sortering)
- Tårnet i Hanoi.
Fundamental for Divide & Conquer-strategi:
Det er to grunnleggende i Divide & Conquer-strategien:
- Relasjonsformel
- Stoppetilstand
1. Relasjonsformel: Det er formelen vi genererer fra den gitte teknikken. Etter generering av Formel bruker vi D&C Strategy, det vil si at vi bryter problemet rekursivt og løser de ødelagte delproblemene.
2. Stopptilstand: Når vi bryter problemet ved å bruke Divide & Conquer Strategy, må vi vite at hvor lang tid vi trenger å bruke divide & conquer. Så tilstanden hvor behovet for å stoppe våre rekursjonstrinn av D&C kalles som Stopping Condition.
Anvendelser av Divide and Conquer-metoden:
Følgende algoritmer er basert på konseptet Divide and Conquer-teknikken:
Fordeler med Divide and Conquer
- Divide and Conquer har en tendens til å lykkes med å løse et av de største problemene, for eksempel Tower of Hanoi, et matematisk puslespill. Det er utfordrende å løse kompliserte problemer som du ikke har noen grunnleggende idé om, men ved hjelp av skille og hersk-tilnærmingen har det redusert innsatsen ettersom det jobber med å dele hovedproblemet i to halvdeler og deretter løse dem rekursivt. Denne algoritmen er mye raskere enn andre algoritmer.
- Den bruker hurtigbufferminne effektivt uten å ta mye plass fordi den løser enkle underproblemer i hurtigbufferminnet i stedet for å få tilgang til det tregere hovedminnet.
- Den er mer dyktig enn den til motstykket Brute Force-teknikken.
- Siden disse algoritmene hemmer parallellisme, innebærer den ingen modifikasjon og håndteres av systemer som inneholder parallell prosessering.
Ulemper med Divide and Conquer
- Siden de fleste av algoritmene er designet ved å inkludere rekursjon, krever det høy minneadministrasjon.
- En eksplisitt stabel kan overbruke plassen.
- Det kan til og med krasje systemet hvis rekursjonen utføres strengt større enn stabelen som er tilstede i CPU.