Divide and Conquer è un modello algoritmico. Nei metodi algoritmici, la progettazione consiste nel prendere una disputa su un input enorme, suddividere l'input in parti minori, decidere il problema su ciascuna delle parti più piccole e quindi unire le soluzioni a pezzi in una soluzione globale. Questo meccanismo per risolvere il problema è chiamato strategia Divide & Conquer.
L'algoritmo Divide and Conquer consiste in una disputa che utilizza i seguenti tre passaggi.
In generale, possiamo seguire il dividere e conquistare approccio in un processo in tre fasi.
Esempi: Gli algoritmi informatici specifici si basano sull'approccio Divide & Conquer:
- Problema di massimo e minimo
- Ricerca binaria
- Ordinamento (unione ordinamento, ordinamento rapido)
- Torre di Hanoi.
Fondamenti della strategia Divide & Conquer:
Ci sono due fondamentali nella strategia Divide & Conquer:
- Formula relazionale
- Condizione di arresto
1. Formula relazionale: È la formula che generiamo dalla tecnica data. Dopo la generazione della formula applichiamo la strategia D&C, ovvero risolviamo il problema in modo ricorsivo e risolviamo i sottoproblemi risolti.
2. Condizione di arresto: Quando risolviamo il problema utilizzando la strategia Divide & Conquer, allora dobbiamo sapere per quanto tempo dobbiamo applicare la strategia Divide & Conquer. Quindi la condizione in cui è necessario interrompere i nostri passaggi di ricorsione di D&C è chiamata condizione di arresto.
Applicazioni dell’approccio “Dividi e Impera”:
I seguenti algoritmi si basano sul concetto della tecnica divide et impera:
I vantaggi del divide et impera
- Dividi e conquista tendono a risolvere con successo uno dei problemi più grandi, come la Torre di Hanoi, un puzzle matematico. È difficile risolvere problemi complicati per i quali non si ha un'idea di base, ma con l'aiuto dell'approccio divide et impera, lo sforzo è diminuito poiché si lavora sulla divisione del problema principale in due metà e quindi risolvendole in modo ricorsivo. Questo algoritmo è molto più veloce di altri algoritmi.
- Utilizza in modo efficiente la memoria cache senza occupare molto spazio perché risolve semplici sottoproblemi all'interno della memoria cache invece di accedere alla memoria principale più lenta.
- È più efficace di quella della sua controparte tecnica Brute Force.
- Poiché questi algoritmi inibiscono il parallelismo, esso non comporta alcuna modifica e viene gestito da sistemi che incorporano l'elaborazione parallela.
Svantaggi di Divide and Conquer
- Poiché la maggior parte dei suoi algoritmi sono progettati incorporando la ricorsione, è necessaria un'elevata gestione della memoria.
- Uno stack esplicito potrebbe utilizzare eccessivamente lo spazio.
- Potrebbe addirittura mandarsi in crash il sistema se la ricorsione viene eseguita rigorosamente su una quantità maggiore dello stack presente nella CPU.