Divide and Conquer är ett algoritmiskt mönster. I algoritmiska metoder är designen att ta en tvist om en enorm input, dela in input i mindre bitar, avgöra problemet på var och en av de små bitarna och sedan slå samman de bitvisa lösningarna till en global lösning. Denna mekanism för att lösa problemet kallas Divide & Conquer-strategin.
Divide and Conquer-algoritmen består av en tvist med följande tre steg.
I allmänhet kan vi följa söndra och erövra tillvägagångssätt i en trestegsprocess.
Exempel: De specifika datoralgoritmerna är baserade på Divide & Conquer-metoden:
- Maximalt och minimalt problem
- Binär sökning
- Sortering (sammanfoga sortering, snabb sortering)
- Hanois torn.
Fundamental of Divide & Conquer-strategi:
Det finns två grundläggande för Divide & Conquer-strategin:
- Relationsformel
- Stopptillstånd
1. Relationsformel: Det är formeln som vi genererar från den givna tekniken. Efter generering av Formel tillämpar vi D&C Strategy, dvs vi bryter problemet rekursivt och löser de trasiga delproblemen.
2. Stopptillstånd: När vi bryter problemet med Divide & Conquer Strategy, då måste vi veta att under hur lång tid måste vi tillämpa divide & Conquer. Så tillståndet där behovet av att stoppa våra rekursionssteg av D&C kallas Stopping Condition.
Tillämpningar av Divide and Conquer-metoden:
Följande algoritmer är baserade på konceptet Divide and Conquer-tekniken:
Fördelar med Divide and Conquer
- Divide and Conquer tenderar att framgångsrikt lösa ett av de största problemen, som Tower of Hanoi, ett matematiskt pussel. Det är utmanande att lösa komplicerade problem som man inte har någon grundläggande idé om, men med hjälp av dela och erövra-metoden har det minskat ansträngningen då man arbetar med att dela upp huvudproblemet i två halvor och sedan lösa dem rekursivt. Denna algoritm är mycket snabbare än andra algoritmer.
- Den använder cacheminnet effektivt utan att ta upp mycket utrymme eftersom det löser enkla delproblem i cacheminnet istället för att komma åt det långsammare huvudminnet.
- Den är mer skicklig än den i sin motsvarighet Brute Force-teknik.
- Eftersom dessa algoritmer hämmar parallellism, innebär det ingen modifiering och hanteras av system som innehåller parallell bearbetning.
Nackdelar med Divide and Conquer
- Eftersom de flesta av dess algoritmer är designade genom att inkorporera rekursion, så kräver det hög minneshantering.
- En explicit stack kan överanvända utrymmet.
- Det kan till och med krascha systemet om rekursionen utförs kraftigt större än stacken som finns i CPU:n.