Divide and Conquer er et algoritmisk mønster. I algoritmiske metoder er designet at tage en tvist om et kæmpe input, dele input i mindre stykker, afgøre problemet på hver af de små stykker og derefter flette de stykvise løsninger sammen til en global løsning. Denne mekanisme til at løse problemet kaldes Divide & Conquer-strategien.
Divide and Conquer-algoritmen består af en tvist ved hjælp af de følgende tre trin.
Generelt kan vi følge del-og-hersk tilgang i en tre-trins proces.
Eksempler: De specifikke computeralgoritmer er baseret på Divide & Conquer-tilgangen:
- Maksimum og minimum problem
- Binær søgning
- Sortering (flet sortering, hurtig sortering)
- Hanois tårn.
Fundamental of Divide & Conquer-strategi:
Der er to grundlæggende i Divide & Conquer-strategien:
- Relationsformel
- Standsningstilstand
1. Relationsformel: Det er formlen, som vi genererer ud fra den givne teknik. Efter generering af Formel anvender vi D&C Strategy, dvs. vi bryder problemet rekursivt og løser de ødelagte delproblemer.
2. Standsningstilstand: Når vi bryder problemet ved hjælp af Divide & Conquer Strategy, så skal vi vide, hvor lang tid, vi skal anvende divide & conquer. Så tilstanden, hvor behovet for at stoppe vores rekursionstrin af D&C, kaldes som Stopningstilstand.
Anvendelser af Divide and Conquer-metoden:
Følgende algoritmer er baseret på konceptet Divide and Conquer-teknikken:
Fordele ved Divide and Conquer
- Divide and Conquer har en tendens til med succes at løse et af de største problemer, såsom Tower of Hanoi, et matematisk puslespil. Det er udfordrende at løse komplicerede problemer, som man ikke har nogen grundlæggende idé om, men ved hjælp af del og hersk tilgangen har det mindsket indsatsen, da det arbejder på at dele hovedproblemet i to halvdele og derefter løse dem rekursivt. Denne algoritme er meget hurtigere end andre algoritmer.
- Den bruger effektivt cachehukommelse uden at optage meget plads, fordi den løser simple underproblemer i cachehukommelsen i stedet for at få adgang til den langsommere hovedhukommelse.
- Den er mere dygtig end dens modstykke Brute Force-teknik.
- Da disse algoritmer hæmmer parallelisme, involverer det ikke nogen modifikation og håndteres af systemer, der inkorporerer parallel behandling.
Ulemper ved Divide and Conquer
- Da de fleste af dens algoritmer er designet ved at inkorporere rekursion, så det nødvendiggør høj hukommelsesstyring.
- En eksplicit stak kan overforbruge pladsen.
- Det kan endda nedbryde systemet, hvis rekursionen udføres strengt større end stakken til stede i CPU'en.