Técnica de optimización de código (Y lógico y O lógico)

AND lógico (&&) Al usar && (AND lógico), debemos poner primero la condición cuya probabilidad de obtener falso es alta para que el compilador no necesite verificar la segunda condición si la primera es falsa.  C++14 #include <bits/stdc++.h> using namespace std; // Function to check whether n is odd bool isOdd(int n) { return (n … Continue reading «Técnica de optimización de código (Y lógico y O lógico)»

Encuentre el número más pequeño K tal que K % p = 0 y q % K = 0

Dados dos enteros p y q , la tarea es encontrar el número K más pequeño tal que K % p = 0 y q % K = 0 . Si tal K no es posible, imprima -1 . Ejemplos:   Entrada: p = 2, q = 8  Salida: 2  2 % 2 = 0 y … Continue reading «Encuentre el número más pequeño K tal que K % p = 0 y q % K = 0»

Análisis de algoritmos | notaciones minúsculas o y minúsculas omega

La idea principal del análisis asintótico es tener una medida de la eficiencia de los algoritmos que no dependen de las constantes específicas de la máquina, principalmente porque este análisis no requiere que se implementen algoritmos ni que los programas tomen tiempo para compararlos. Ya hemos discutido tres notaciones asintóticas principales . Las siguientes 2 … Continue reading «Análisis de algoritmos | notaciones minúsculas o y minúsculas omega»

Número máximo de paralelogramos que se pueden hacer usando la longitud dada de segmentos de línea

Dados N segmentos de línea donde la longitud del i-ésimo segmento de línea es  . La tarea es encontrar el número máximo de paralelogramos que se pueden hacer con esos segmentos de línea si cada segmento de línea se usa como máximo en un paralelogramo. Ejemplos:   Input: arr[] = {1, 2, 1, 2} Output: 1 … Continue reading «Número máximo de paralelogramos que se pueden hacer usando la longitud dada de segmentos de línea»

Análisis de Algoritmos | Serie 5 (Problemas de práctica)

Hemos discutido el análisis asintótico , los casos peor, promedio y mejor , las notaciones asintóticas y el análisis de bucles en publicaciones anteriores. En este post se discuten problemas prácticos sobre el análisis de algoritmos. Problema 1: encuentre la complejidad de la siguiente recurrencia:   { 3T(n-1), if n>0, T(n) = { 1, otherwise Solución:   … Continue reading «Análisis de Algoritmos | Serie 5 (Problemas de práctica)»

Encuentra el número N en una secuencia que no es un múltiplo de un número dado

Dados cuatro enteros A , N , L y R , la tarea es encontrar el número N en una secuencia de enteros consecutivos de L a R que no sea un múltiplo de A . Se da que la sucesión contiene al menos N números que no son divisibles por A y el entero … Continue reading «Encuentra el número N en una secuencia que no es un múltiplo de un número dado»

La substring más larga de solo 4 de los primeros N caracteres de la string infinita

Dado un número entero N, la tarea es encontrar la longitud de la substring más larga que contiene solo 4 de los primeros N caracteres de la string infinita str . La string str se genera concatenando los números formados por solo 4 y 5 en orden creciente. Por ejemplo 4 , 5 , 44 … Continue reading «La substring más larga de solo 4 de los primeros N caracteres de la string infinita»

Tiempo que tarda el bucle en desenrollarse frente al bucle normal

Hemos discutido el desenrollado de bucles . La idea es aumentar el rendimiento agrupando sentencias de bucle para que haya menos instrucciones de control de bucle e instrucciones de prueba de bucle.  C++ // CPP program to compare normal loops and // loops with unrolling technique #include <iostream> #include <time.h> using namespace std;   int … Continue reading «Tiempo que tarda el bucle en desenrollarse frente al bucle normal»

Encuentra las coordenadas de un triángulo cuya Área = (S / 2)

Dado un entero S , la tarea es encontrar las coordenadas de un triángulo cuya área es (S / 2) . Ejemplos:  Entrada: S = 4  Salida:  (0, 0)  (1000000000, 1)  (999999996, 1) Entrada: S = 15  Salida:  (0, 0)  (1000000000, 1)  (999999985, 1)   Acercarse:   Se sabe que el área del triángulo cuyas coordenadas son … Continue reading «Encuentra las coordenadas de un triángulo cuya Área = (S / 2)»

Número de ciclos formados al unir los vértices de un polígono de n lados en el centro

Dado un polígono regular de N lados , hemos conectado todos los vértices en el centro del polígono, dividiendo así el polígono en N partes iguales. Nuestra tarea es la Cuenta del número total de ciclos en el polígono. Nota: un ciclo es un circuito cerrado que comienza y termina en el mismo punto. Ejemplos:   … Continue reading «Número de ciclos formados al unir los vértices de un polígono de n lados en el centro»