Divide and Conquer este un model algoritmic. În metodele algoritmice, proiectarea constă în a lua o dispută asupra unei intrări uriașe, a diviza intrarea în bucăți minore, a decide problema pentru fiecare dintre bucățile mici și apoi a îmbina soluțiile pe bucăți într-o soluție globală. Acest mecanism de rezolvare a problemei se numește Strategia Divide & Conquer.
Algoritmul Divide and Conquer constă într-o dispută folosind următorii trei pași.
În general, putem urmări diviza și cuceri abordare într-un proces în trei etape.
Exemple: Algoritmii specifici de computer se bazează pe abordarea Divide & Conquer:
- Problemă maximă și minimă
- Căutare binară
- Sortare (sortare îmbinare, sortare rapidă)
- Turnul din Hanoi.
Elementele fundamentale ale strategiei Divide & Conquer:
Există două elemente fundamentale ale strategiei Divide & Conquer:
- Formula relațională
- Condiție de oprire
1. Formula relațională: Este formula pe care o generăm din tehnica dată. După generarea formulei, aplicăm strategia D&C, adică eliminăm problema recursiv și rezolvăm subproblemele rupte.
2. Condiție de oprire: Când rezolvăm problema utilizând strategia Divide & Conquer, atunci trebuie să știm că pentru cât timp, trebuie să aplicăm divide & Conquer. Deci condiția în care necesitatea de a opri pașii noștri recursivi ai D&C este numită Condiție de oprire.
Aplicații ale abordării Divide and Conquer:
Următorii algoritmi se bazează pe conceptul tehnicii Divide and Conquer:
Avantajele Divide and Conquer
- Divide and Conquer tind să rezolve cu succes una dintre cele mai mari probleme, cum ar fi Turnul din Hanoi, un puzzle matematic. Este o provocare să rezolvi probleme complicate pentru care nu ai nicio idee de bază, dar cu ajutorul abordării împărți și cuceri, a redus efortul, deoarece lucrează la împărțirea problemei principale în două jumătăți și apoi le rezolvă recursiv. Acest algoritm este mult mai rapid decât alți algoritmi.
- Utilizează eficient memoria cache fără a ocupa mult spațiu, deoarece rezolvă subprobleme simple din memoria cache în loc să acceseze memoria principală mai lentă.
- Este mai priceput decât cel al lui omologul său tehnică Brute Force.
- Deoarece acești algoritmi inhibă paralelismul, acesta nu implică nicio modificare și este gestionat de sisteme care încorporează procesare paralelă.
Dezavantajele Divide and Conquer
- Deoarece majoritatea algoritmilor săi sunt proiectați prin încorporarea recursiunii, deci necesită un management ridicat al memoriei.
- O stivă explicită poate suprasolicita spațiul.
- Poate chiar să blocheze sistemul dacă recursiunea este efectuată cu mult mai mult decât stiva prezentă în CPU.