Treap (un árbol de búsqueda binario aleatorio)

Al igual que los árboles rojo-negro y AVL , Treap es un árbol de búsqueda binario equilibrado, pero no se garantiza que tenga una altura como O (Log n). La idea es utilizar la propiedad Randomization y Binary Heap para mantener el equilibrio con alta probabilidad. La complejidad de tiempo esperada de búsqueda, inserción y … Continue reading «Treap (un árbol de búsqueda binario aleatorio)»

Encuentre todas las interpretaciones posibles de una array de dígitos

Considere un sistema de codificación de alfabetos a números enteros donde ‘a’ se representa como 1, ‘b’ como 2, .. ‘z’ como 26. Dada una array de dígitos (1 a 9) como entrada, escriba una función que imprima todos interpretaciones válidas de la array de entrada. Ejemplos  Input: {1, 1} Output: («aa», ‘k») [2 interpretations: aa(1, … Continue reading «Encuentre todas las interpretaciones posibles de una array de dígitos»

Contar inversiones en una array | Conjunto 3 (usando BIT)

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, el recuento de inversión es 0. Si la array está ordenada en orden inverso, el recuento de inversión es el máximo. Dos elementos a[i] y a[j] forman una inversión si a[i] … Continue reading «Contar inversiones en una array | Conjunto 3 (usando BIT)»

Diferencia entre el índice invertido y el índice directo

Índice invertido Es una estructura de datos que almacena el mapeo de palabras a documentos o conjunto de documentos, es decir, lo dirige de palabra a documento. Los pasos para construir el índice invertido son: Busca el documento y reúne todas las palabras. Verifique cada palabra, si está presente, agregue la referencia del documento al … Continue reading «Diferencia entre el índice invertido y el índice directo»

Encuentre la string de una array que se puede convertir en una string S con un número mínimo de intercambios

Dada una string S y una array de strings arr[] de longitud N y M respectivamente, la tarea es encontrar la string de la array dada a la string S intercambiando el número mínimo de caracteres. Si no se puede convertir ninguna string a S , imprima -1. Ejemplos: Entrada: S = «abc», arr[] = … Continue reading «Encuentre la string de una array que se puede convertir en una string S con un número mínimo de intercambios»

Inserto B-Tree sin divisiones agresivas

B-Tree Insert sin división agresiva Este algoritmo de inserción toma una entrada, encuentra el Node hoja al que pertenece y lo inserta allí. Insertamos recursivamente la entrada llamando al algoritmo de inserción en el Node secundario apropiado. Este procedimiento da como resultado bajar al Node de hoja al que pertenece la entrada, colocar la entrada … Continue reading «Inserto B-Tree sin divisiones agresivas»

Generar permutación original a partir de una array dada de inversiones

Dada una array arr[] de tamaño N , donde arr[i] denota el número de elementos de la izquierda que son mayores que el i -ésimo elemento en la permutación original. La tarea es encontrar la permutación original de [1, N] para la cual la array de inversión dada arr[] es válida. Ejemplos: Entrada: arr[] = … Continue reading «Generar permutación original a partir de una array dada de inversiones»

Ciclo más corto en un gráfico no ponderado no dirigido

Dado un gráfico no ponderado no dirigido. La tarea es encontrar la duración del ciclo más corto en el gráfico dado. Si no existe ningún ciclo, imprima -1. Ejemplos:   Aporte:  Salida: 4  Ciclo 6 -> 1 -> 5 -> 0 -> 6 Aporte:  Salida: 3  Ciclo 6 -> 1 -> 2 -> 6  Requisitos previos: … Continue reading «Ciclo más corto en un gráfico no ponderado no dirigido»

Consultas de rango de strings para encontrar el número de subconjuntos iguales a una string dada

Dada una string S de longitud N, y M consultas del siguiente tipo: Tipo 1: 1 L x,  indica actualizar el índice Lth de la string S por el carácter ‘x’. Tipo 2: 2 LR str  Encuentre el número de subconjuntos en el rango L a R  que es igual a la string str módulo … Continue reading «Consultas de rango de strings para encontrar el número de subconjuntos iguales a una string dada»

Consultas para el recuento de elementos de array con valores en un rango dado con actualizaciones

Dada una array arr[] de tamaño N y una array Q que consta de consultas de los siguientes dos tipos:  1 LR : Imprime el número de elementos que se encuentran en el rango [L, R]. 2 ix : Establecer arr[i] = x Ejemplos:  Entrada: arr[] = {1, 2, 2, 3, 4, 4, 5, 6}, … Continue reading «Consultas para el recuento de elementos de array con valores en un rango dado con actualizaciones»