Prefijo común más largo usando el algoritmo Divide and Conquer – Part 1

Dado un conjunto de strings, encuentre el prefijo común más largo.  Ejemplos:  Input : {“geeksforgeeks”, “geeks”, “geek”, “geezer”} Output : «gee» Input : {«apple», «ape», «april»} Output : «ap» Hemos discutido los algoritmos de coincidencia palabra por palabra y carácter por carácter . En este algoritmo, se analiza un enfoque de divide y vencerás. Primero … Continue reading «Prefijo común más largo usando el algoritmo Divide and Conquer – Part 1»

Casco convexo utilizando el algoritmo Divide and Conquer – Part 1

Un casco convexo es el polígono convexo más pequeño que contiene todos los puntos dados. La entrada es una array de puntos especificados por sus coordenadas x e y. La salida es el casco convexo de este conjunto de puntos. Ejemplos: Input : points[] = {(0, 0), (0, 4), (-4, 0), (5, 0), (0, -6), … Continue reading «Casco convexo utilizando el algoritmo Divide and Conquer – Part 1»

Encuentre una cuadrícula N x N cuyo xor de cada fila y columna sea igual

Dado un número entero N que es un múltiplo de 4 , la tarea es encontrar una cuadrícula N x N para la cual el xor bit a bit de cada fila y columna sea el mismo. Ejemplos:   Entrada: N = 4  Salida:  0 1 2 3  4 5 6 7  8 9 10 11  … Continue reading «Encuentre una cuadrícula N x N cuyo xor de cada fila y columna sea igual»

K-ésimo elemento más pequeño en una array ordenada formada al invertir subarreglos de un índice aleatorio

Dada una array ordenada arr[] de tamaño N y un número entero K , la tarea es encontrar el elemento más pequeño presente en la array. La array dada se obtuvo invirtiendo las subarreglas {arr[0], arr[R]} y {arr[R + 1], arr[N – 1]} en algún índice aleatorio R. Si la clave no está presente en … Continue reading «K-ésimo elemento más pequeño en una array ordenada formada al invertir subarreglos de un índice aleatorio»

Merge Sort with O(1) extra space merge and O(n lg n) time [Solo enteros sin signo]

Hemos hablado de Merge sort . Cómo modificar el algoritmo para que la fusión funcione en O(1) espacio extra y el algoritmo aún funcione en O(n Log n) tiempo. Podemos suponer que los valores de entrada son solo números enteros. Ejemplos:  Input : 5 4 3 2 1 Output : 1 2 3 4 5 … Continue reading «Merge Sort with O(1) extra space merge and O(n lg n) time [Solo enteros sin signo]»

Cuadrado más grande en una array binaria con un máximo de K 1 para consultas múltiples

Dada una array binaria M donde cada elemento de la array será 0 o 1, la tarea es encontrar el cuadrado más grande que se puede formar con el centro (i, j) y que contiene como máximo K 1. Entrada: M[][] = {  {1, 0, 1, 0, 0}  {1, 0, 1, 1, 1}  {1, 1, … Continue reading «Cuadrado más grande en una array binaria con un máximo de K 1 para consultas múltiples»

Programa Php para encontrar el número más cercano en una array

Dada una array de enteros ordenados. Necesitamos encontrar el valor más cercano al número dado. La array puede contener valores duplicados y números negativos.  Ejemplos:   Input : arr[] = {1, 2, 4, 5, 6, 6, 8, 9} Target number = 11 Output : 9 9 is closest to 11 in given array Input :arr[] = … Continue reading «Programa Php para encontrar el número más cercano en una array»

Programa C++ para contar inversiones en una array: conjunto 1 (usando Merge Sort)

El conteo de inversión para una array indica qué tan lejos (o cerca) está la array de ser ordenada. Si la array ya está ordenada, entonces el conteo de inversión es 0, pero si la array está ordenada en orden inverso, el conteo de inversión es el máximo. Hablando formalmente, dos elementos a[i] y a[j] forman … Continue reading «Programa C++ para contar inversiones en una array: conjunto 1 (usando Merge Sort)»

Java 8 | Arrays método parallelSort() con ejemplos

Java 8 introdujo un nuevo método llamado paraleloSort() en la clase java.util.Arrays . Utiliza la clasificación paralela de elementos de array. Algoritmo de ParallelSort() 1. The array is divided into sub-arrays and that sub-arrays is again divided into their sub-arrays, until the minimum level of detail in a set of array. 2. Arrays are sorted … Continue reading «Java 8 | Arrays método parallelSort() con ejemplos»

Divide y vencerás | Conjunto 5 (Multiplicación de arrays de Strassen)

Dadas dos arrays cuadradas A y B de tamaño nxn cada una, encuentre su array de multiplicación.  Método ingenuo : a continuación se muestra una forma sencilla de multiplicar dos arrays.  C++ void multiply(int A[][N], int B[][N], int C[][N]) {     for (int i = 0; i < N; i++)     {         for (int j = 0; … Continue reading «Divide y vencerás | Conjunto 5 (Multiplicación de arrays de Strassen)»