Análisis de la complejidad de la búsqueda binaria

Complejidades como O(1) y O(n) son fáciles de entender. O(1) significa que requiere un tiempo constante para realizar operaciones como llegar a un elemento en un tiempo constante como en el caso del diccionario y O(n) significa que depende del valor de n para realizar operaciones como buscar un elemento en una array de n … Continue reading «Análisis de la complejidad de la búsqueda binaria»

Cuente los tripletes tales que A[i] < B[j] < C[k]

Dados tres arreglos A[] , B[] y C[] de N enteros cada uno. La tarea es encontrar el conteo de trillizos (A[i], B[j], C[k]) tales que A[i] < B[j] < C[k] .  Entrada: A[] = {1, 5}, B[] = {2, 4}, C[] = {3, 6} Salida: 3 trillizos son (1,  2 ,  3), (1, 4, … Continue reading «Cuente los tripletes tales que A[i] < B[j] < C[k]»

Rompecabezas | Encuentra al isleño con sobrepeso

Hay 12 hombres en una isla. 11 pesan exactamente lo mismo, pero uno de ellos es un poco más ligero o más pesado. Hay un sube y baja para determinar quién es el extraño. Averigüe el número mínimo de veces que se utilizará el balancín. Solución: El número mínimo de veces que se necesitará el … Continue reading «Rompecabezas | Encuentra al isleño con sobrepeso»

Torre de Hanoi basada en costos

El problema estándar de la Torre de Hanoi se explica aquí . En el problema estándar, todas las transacciones del disco se consideran idénticas. Dada una array de 3×3 de costos[][] que contiene los costos de transferencia del disco entre las barras, donde costos[i][j] almacena el costo de transferir un disco de la barra i … Continue reading «Torre de Hanoi basada en costos»

Eliminaciones mínimas en el rango para hacer bit a bit Y distinto de cero para consultas de rango dado

Dada una consulta de array [][] de consultas de rango Q , la tarea es encontrar las eliminaciones mínimas del rango [l, r] de modo que el AND bit a bit del rango sea un valor distinto de cero. Ejemplos:  Entrada: consultas[][] = { {1, 5}, {3, 4}, {5, 10}, {10, 15}} Salida: 2 1 … Continue reading «Eliminaciones mínimas en el rango para hacer bit a bit Y distinto de cero para consultas de rango dado»

Clasificación mediante la combinación de algoritmos de ordenación por inserción y ordenación por fusión

Clasificación por inserción : la array se divide virtualmente en una parte ordenada y otra no ordenada. Los valores de la parte no ordenada se seleccionan y colocan en la posición correcta en la parte ordenada. Ventajas: Las siguientes son las ventajas del ordenamiento por inserción: Si el tamaño de la lista que se va … Continue reading «Clasificación mediante la combinación de algoritmos de ordenación por inserción y ordenación por fusión»

Búsqueda binaria (bisect) en Python

La búsqueda binaria es una técnica utilizada para buscar elementos en una lista ordenada. En este artículo, veremos las funciones de la biblioteca para realizar búsquedas binarias. Encontrar la primera aparición de un elemento.   bisect.bisect_left(a, x, lo=0, hi=len(a)) : Devuelve el punto de inserción más a la izquierda de x en una lista ordenada. Los … Continue reading «Búsqueda binaria (bisect) en Python»

Contar inversiones en una array | Conjunto 1 (usando la ordenación por combinación)

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] … Continue reading «Contar inversiones en una array | Conjunto 1 (usando la ordenación por combinación)»

Suma de todos los elementos de la array menores que X y mayores que Y para consultas Q

Dada una array ordenada arr[] y un conjunto Q que tiene M consultas, donde cada consulta tiene valores X e Y , la tarea es encontrar la suma de todos los números enteros menores que X y mayores que Y presentes en la array. Nota: X e Y pueden o no estar presentes en la … Continue reading «Suma de todos los elementos de la array menores que X y mayores que Y para consultas Q»

Recuento de elementos más pequeños en el lado derecho de cada elemento en una array usando la ordenación por combinación

Dada una array arr[] de N enteros, la tarea es contar el número de elementos más pequeños en el lado derecho para cada uno de los elementos de la array Ejemplos:  Entrada: arr[] = {6, 3, 7, 2}  Salida: 2, 1, 1, 0  Explicación:  Elementos más pequeños después de 6 = 2 [3, 2]  Elementos … Continue reading «Recuento de elementos más pequeños en el lado derecho de cada elemento en una array usando la ordenación por combinación»