Semiprimos libres de cuadrados en un rango dado usando C++ STL

Dados dos enteros L y R (L < = R). La tarea es encontrar todos los semiprimos libres de cuadrados en el rango L a R (ambos inclusive). Ejemplos: Entrada: L = 1, R = 10 Salida: 2 4, 6, 9, 10 son semiprimos. Pero 6, 10 son semiprimos sin cuadrados. Entrada: L = 10, … Continue reading «Semiprimos libres de cuadrados en un rango dado usando C++ STL»

Cambio de representación en la técnica Transfer and Conquer

El cambio de representación es una de las variantes de la técnica Transfer and Conquer donde el problema dado se transforma en otro dominio que es más familiar o más simple de ejecutar. En el caso de cambio de representación, la instancia de un problema dado se transforma en otra representación sin afectar la instancia … Continue reading «Cambio de representación en la técnica Transfer and Conquer»

Algoritmo de Day-Stout-Warren para equilibrar el árbol de búsqueda binaria dado

 Dado un árbol de búsqueda binario (BST) desequilibrado, la tarea es convertirlo en un BST equilibrado en tiempo lineal y sin usar espacio auxiliar. Ejemplos: Entrada:               5                        / \                 … Continue reading «Algoritmo de Day-Stout-Warren para equilibrar el árbol de búsqueda binaria dado»

Algoritmo de Karatsuba para la multiplicación rápida de números decimales grandes representados como strings

Dadas dos strings numéricas A y B , la tarea es encontrar el producto de las dos strings numéricas de manera eficiente. Ejemplo: Entrada: A = 5678, B = 1234 Salida: 7006652 Entrada: A =74638463789, B = 35284567382 Salida: 2633585904851937530398 Enfoque: el problema dado se puede resolver usando el algoritmo de multiplicación rápida de Karastuba … Continue reading «Algoritmo de Karatsuba para la multiplicación rápida de números decimales grandes representados como strings»

Búsqueda binaria en JavaScript

La búsqueda binaria es una técnica de búsqueda que funciona con el enfoque Divide and Conquer . Se utiliza para buscar cualquier elemento en una array ordenada. En comparación con la búsqueda binaria lineal, es mucho más rápida con una complejidad de tiempo de O(logN), mientras que la búsqueda lineal funciona en una complejidad de tiempo … Continue reading «Búsqueda binaria en JavaScript»

Encontrar la paridad de un número de manera eficiente

Dado un número entero N. La tarea es escribir un programa para encontrar la paridad del número dado. Nota : La paridad de un número se usa para definir si el número total de bits establecidos (1 bit en representación binaria) en un número es par o impar. Si el número total de bits establecidos en … Continue reading «Encontrar la paridad de un número de manera eficiente»

Algoritmo de factorización de ruedas

Dado un número N. La tarea es comprobar si el número dado es número primo o no. Ejemplos:   Entrada: N = 987  Salida: No es un número primo  Explicación:  Como, 987 = 3*7*47. Por lo tanto, 987 no es un número primo. Entrada: N = 67  Salida: Número primo   Método de factorización de rueda:  La … Continue reading «Algoritmo de factorización de ruedas»

Teoría de los límites inferior y superior

La teoría de los límites inferior y superior proporciona una forma de encontrar el algoritmo de menor complejidad para resolver un problema. Antes de comprender la teoría, primero, echemos un breve vistazo a lo que son los límites inferior y superior.  Límite Inferior –  Sea L(n) el tiempo de ejecución de un algoritmo A(por ejemplo), … Continue reading «Teoría de los límites inferior y superior»

Algoritmo de generación de línea de punto medio

Dada la coordenada de dos puntos A(x1, y1) y B(x2, y2) tales que x1 < x2 e y1 < y2. La tarea de encontrar todos los puntos intermedios necesarios para dibujar la línea AB en la pantalla de la computadora de píxeles. Tenga en cuenta que cada píxel tiene coordenadas enteras. Hemos discutido a continuación … Continue reading «Algoritmo de generación de línea de punto medio»

Recorrido de orden de nivel en forma de espiral usando stack y multimap

Dado un árbol binario de N Nodes, la tarea es imprimir el recorrido del orden de niveles en forma de espiral. En forma de espiral, los Nodes del primer y segundo nivel del árbol se imprimen normalmente (de izquierda a derecha), después de lo cual los Nodes de los niveles alternos se imprimen en orden … Continue reading «Recorrido de orden de nivel en forma de espiral usando stack y multimap»