Algorisme Divide and Conquer és una estratègia de resolució de problemes que consisteix a desglossar un problema complex en parts més petites i manejables, resolent cada part individualment i després combinar les solucions per resoldre el problema original. És una tècnica algorítmica molt utilitzada en informàtica i matemàtiques.
Exemple: En el Fusionar Ordenar algorisme, el Divideix i conquereix estratègia s'utilitza per ordenar una llista d'elements. La imatge següent il·lustra els estats de divisió i fusió per ordenar la matriu utilitzant Fusionar Ordenar .
paraula clau final en java
Taula de contingut
diana mary blacker
- Què és Divide and Conquer?
- Etapes de Divide i vencer
- Aplicacions de Divide and Conquer
- Conceptes bàsics de Divide and Conquer
- Algorismes estàndard sobre Divide and Conquer
- Problemes basats en la cerca binària
- Pràctica de problemes sobre Divide and Conquer
Què és l'algoritme Divide and Conquer?
Divide and Conquer és una tècnica de resolució de problemes que consisteix a dividir un problema més gran en subproblemes, resoldre els subproblemes de manera independent i combinar les solucions d'aquests subproblemes per obtenir la solució del problema més gran.
Etapes de l'algoritme Divide and Conquer:
L'algoritme Divide and Conquer es pot dividir en tres etapes: Divideix , Conquerir i Fusionar .
1. Dividiu:
- Desglosseu el problema original en subproblemes més petits.
- Cada subproblema ha de representar una part del problema global.
- L'objectiu és dividir el problema fins que no sigui possible més divisió.
2. Conquerir:
- Resol cadascun dels subproblemes més petits individualment.
- Si un subproblema és prou petit (sovint es coneix com el cas base), el resolem directament sense més recursivitat.
- L'objectiu és trobar solucions per a aquests subproblemes de manera independent.
3. Fusionar:
- Combina els subproblemes per obtenir la solució final de tot el problema.
- Un cop resolts els subproblemes més petits, combinem recursivament les seves solucions per obtenir la solució del problema més gran.
- L'objectiu és formular una solució per al problema original fusionant els resultats dels subproblemes.
Aplicacions de l'algoritme Divide and Conquer:
- Ordenar per combinació: L'ordenació combinada és un exemple clàssic d'un algorisme d'ordenació dividir i conquerir. Desglossa la matriu en subarrays més petits, els ordena individualment i després els fusiona per obtenir la matriu ordenada.
- Trobada mitjana: La mediana d'un conjunt de nombres es pot trobar utilitzant un enfocament de dividir i guanyar. En dividir recursivament el conjunt en subconjunts més petits, la mediana es pot determinar de manera eficient.
- Mínima i màxima troballa: L'algorisme Divide and Conquer es pot utilitzar per trobar els elements mínims i màxims en una matriu simultàniament. En dividir la matriu en meitats i comparar els parells min-max de cada meitat, es poden identificar els mínims i màxims generals en complexitat de temps logarítmica.
- Multiplicació matricial: L'algorisme de Strassen per a la multiplicació de matrius és una tècnica de dividir i conquerir que redueix el nombre de multiplicacions necessàries per a matrius grans desglossant les matrius en submatrius més petites i combinant els seus productes.
- Problema del parell més proper: El problema de parelles més properes consisteix a trobar els dos punts més propers en un conjunt de punts en un espai multidimensional. Un algorisme de dividir i conquerir, com ara l'algorisme del parell més proper de dividir i conquerir, pot resoldre de manera eficient aquest problema dividint recursivament els punts i fusionant les solucions dels subproblemes.
Conceptes bàsics de l'algoritme Divide and Conquer:
- Introducció a Divide and Conquer
- Programació dinàmica vs Divide-and-Conquer
- Disminuir i conquerir
- Teorema mestre avançat per dividir i conquerir recurrències
Algoritmes estàndard activats Algoritme Divideix i Conquista :
- Cerca binària
- Fusionar Ordenar
- Classificació ràpida
- Calcula pow(x, n)
- Algorisme de Karatsuba per a la multiplicació ràpida
- Multiplicació matricial de Strassen
- Casc convex (algoritme simple de divisió i conquesta)
- Algoritme Quickhull per a casc convex
Problemes basats en cerca binària:
- Trobeu un element pic en una matriu donada
- Comproveu l'element majoritari en una matriu ordenada
- Element K-è de dues matrius ordenades
- Troba el nombre de zeros
- Trobeu el recompte de rotació a la matriu ordenada girada
- Trobeu el punt on una funció creixent monòtonament esdevé positiva per primera vegada
- Mediana de dues matrius ordenades
- Mediana de dues matrius ordenades de diferents mides
- El problema de la partició del pintor mitjançant la cerca binària
Practica problemes Algoritme Divideix i Conquista :
- Arrel quadrada d'un nombre enter
- Màxim i mínim d'una matriu utilitzant el nombre mínim de comparacions
- Trobeu la freqüència de cada element en una matriu de rang limitat en menys de temps O(n).
- Problema de rajoles
- Recompte d'inversions
- El problema de l'horitzó
- Cerca en una matriu 2D ordenada per files i columnes
- Assigna un nombre mínim de pàgines
- Exponenciació modular (potència en aritmètica modular)
Links ràpids :
- Apreneu l'estructura de dades i els algorismes | Tutorial DSA
- 'Practica problemes' a Divide and Conquer
- ‘Quizzes’ sobre Divide and Conquer