logo

Algoritmo divide y vencerás

Algoritmo divide y vencerás Es una estrategia de resolución de problemas que implica dividir un problema complejo en partes más pequeñas y manejables, resolver cada parte individualmente y luego combinar las soluciones para resolver el problema original. Es una técnica algorítmica ampliamente utilizada en informática y matemáticas.

Ejemplo: En el Combinar ordenar algoritmo, el Divide y conquistaras La estrategia se utiliza para ordenar una lista de elementos. La imagen a continuación ilustra los estados de división y fusión para ordenar la matriz usando Combinar ordenar .



cuantos millones hay en mil millones

Tabla de contenidos

¿Qué es el algoritmo divide y vencerás?

Divide y vencerás es una técnica de resolución de problemas que implica dividir un problema mayor en subproblemas, resolver los subproblemas de forma independiente y combinar las soluciones de esos subproblemas para obtener la solución del problema mayor.



cómo emparejar auriculares beats

Etapas del algoritmo divide y vencerás:

El algoritmo divide y vencerás se puede dividir en tres etapas: Dividir , Conquistar y Unir .

1. Dividir:

  • Divida el problema original en subproblemas más pequeños.
  • Cada subproblema debe representar una parte del problema general.
  • El objetivo es dividir el problema hasta que ya no sea posible realizar más divisiones.

2. Conquistar:

  • Resuelva cada uno de los subproblemas más pequeños individualmente.
  • Si un subproblema es lo suficientemente pequeño (a menudo denominado caso base), lo resolvemos directamente sin más recursividad.
  • El objetivo es encontrar soluciones a estos subproblemas de forma independiente.

3. Fusionar:

  • Combine los subproblemas para obtener la solución final de todo el problema.
  • Una vez que se resuelven los subproblemas más pequeños, combinamos recursivamente sus soluciones para obtener la solución del problema mayor.
  • El objetivo es formular una solución para el problema original fusionando los resultados de los subproblemas.

Aplicaciones del algoritmo divide y vencerás:

  • Combinar orden: La ordenación por combinación es un ejemplo clásico de un algoritmo de ordenación divide y vencerás. Divide la matriz en submatrices más pequeñas, las clasifica individualmente y luego las combina para obtener la matriz ordenada.
  • Hallazgo mediano: La mediana de un conjunto de números se puede encontrar mediante el método de divide y vencerás. Al dividir recursivamente el conjunto en subconjuntos más pequeños, la mediana se puede determinar de manera eficiente.
  • Hallazgo mínimo y máximo: El algoritmo Divide and Conquer se puede utilizar para encontrar los elementos mínimo y máximo en una matriz simultáneamente. Al dividir la matriz en mitades y comparar los pares mínimo-máximo de cada mitad, el mínimo y el máximo generales se pueden identificar en complejidad de tiempo logarítmico.
  • Multiplicación de matrices: El algoritmo de Strassen para la multiplicación de matrices es una técnica de divide y vencerás que reduce el número de multiplicaciones necesarias para matrices grandes al dividir las matrices en submatrices más pequeñas y combinar sus productos.
  • Problema de par más cercano: El problema del par más cercano implica encontrar los dos puntos más cercanos en un conjunto de puntos en un espacio multidimensional. Un algoritmo de divide y vencerás, como el algoritmo de divide y vencerás del par más cercano, puede resolver eficientemente este problema dividiendo recursivamente los puntos y fusionando las soluciones de los subproblemas.

Conceptos básicos del algoritmo divide y vencerás:

Algoritmos estándar en Algoritmo divide y vencerás :

  • Búsqueda binaria
  • Combinar ordenar
  • Ordenación rápida
  • Calcular potencia(x,n)
  • Algoritmo de Karatsuba para multiplicación rápida
  • Multiplicación de matrices de Strassen
  • Casco convexo (algoritmo simple de divide y vencerás)
  • Algoritmo Quickhull para casco convexo

Problemas basados ​​en la búsqueda binaria:

  • Encuentra un elemento pico en una matriz determinada
  • Verifique el elemento mayoritario en una matriz ordenada
  • K-ésimo elemento de dos matrices ordenadas
  • Encuentra el número de ceros
  • Encuentre el recuento de rotación en una matriz ordenada rotada
  • Encuentre el punto donde una función monótonamente creciente se vuelve positiva por primera vez
  • Mediana de dos matrices ordenadas
  • Mediana de dos matrices ordenadas de diferentes tamaños
  • El problema de la partición del pintor usando la búsqueda binaria

Practicar problemas en Algoritmo divide y vencerás :

  • Raíz cuadrada de un número entero
  • Máximo y mínimo de una matriz utilizando un número mínimo de comparaciones
  • Encuentre la frecuencia de cada elemento en una matriz de rango limitado en menos de O (n) tiempo
  • Problema de mosaico
  • Contar inversiones
  • El problema del horizonte
  • Buscar en una matriz 2D ordenada por filas y columnas
  • Asignar un número mínimo de páginas
  • Exponenciación modular (potencia en aritmética modular)

Enlaces rápidos :

  • Aprenda la estructura de datos y los algoritmos | Tutorial de DSA
  • 'Problemas de práctica' sobre divide y vencerás
  • 'Cuestionarios' sobre divide y vencerás