Minimice la resta de los elementos de la array para hacer que X sea 0 como máximo

Dado un número X y una array arr[] de longitud N que contiene los N números. La tarea es encontrar el número mínimo de operaciones requeridas para hacer que X no sea positivo. En una operación: Seleccione cualquier número Y de la array y reduzca X por Y .  Luego haga Y = Y/2 (tome … Continue reading «Minimice la resta de los elementos de la array para hacer que X sea 0 como máximo»

K-ésima suma del par más pequeño en una array dada

Dada una array de números enteros arr[] de tamaño N y un número entero K , la tarea es encontrar la K-ésima suma del par más pequeño de la array dada. Ejemplos:  Entrada: arr[] = {1, 5, 6, 3, 2}, K = 3 Salida: 5 Explicación: La suma de todos los pares es: 1+5 = … Continue reading «K-ésima suma del par más pequeño en una array dada»

Fusionar k arrays ordenadas | Conjunto 2 (arrays de diferentes tamaños)

Dadas k arrays ordenadas de tamaños posiblemente diferentes, combínelas e imprima la salida ordenada. Ejemplos:  Input: k = 3 arr[][] = { {1, 3}, {2, 4, 6}, {0, 9, 10, 11}} ; Output: 0 1 2 3 4 6 9 10 11 Input: k = 2 arr[][] = { {1, 3, 20}, {2, 4, 6}} … Continue reading «Fusionar k arrays ordenadas | Conjunto 2 (arrays de diferentes tamaños)»

Representación de array de montón binario

Un montón binario es un árbol binario completo. Un montón binario normalmente se representa como una array. La representación se hace como: El elemento raíz estará en Arr[0]. La siguiente tabla muestra índices de otros Nodes para el i -ésimo Node, es decir, Arr[i]: Arr[(i-1)/2] Devuelve el Node padre Arr[(2*i)+1] Devuelve el Node secundario izquierdo … Continue reading «Representación de array de montón binario»

make_heap() en C++ STL – Part 1

make_heap() se usa para transformar una secuencia en un montón. Un montón es una estructura de datos que apunta al elemento más alto (o más bajo) y hace su acceso en tiempo O (1) . El orden de todos los demás elementos depende de la implementación particular, pero se mantiene constante en todo momento. Esta … Continue reading «make_heap() en C++ STL – Part 1»

Programa para la programación de CPU de prioridad preventiva

Implementación de programación de CPU prioritaria. En este problema, usamos Min Heap como la estructura de datos para implementar la programación prioritaria. En este problema, los números más pequeños indican una mayor prioridad.  Las siguientes funciones se utilizan en el código dado a continuación:  struct process { processID, burst time, response time, priority, arrival time. } … Continue reading «Programa para la programación de CPU de prioridad preventiva»

Diseñar una estructura de datos eficiente para determinadas operaciones

Diseñe una estructura de datos para las siguientes operaciones. La estructura de datos debe ser lo suficientemente eficiente para acomodar las operaciones de acuerdo con su frecuencia. 1) findMin() : Returns the minimum item. Frequency: Most frequent 2) findMax() : Returns the maximum item. Frequency: Most frequent 3) deleteMin() : Delete the minimum item. Frequency: … Continue reading «Diseñar una estructura de datos eficiente para determinadas operaciones»

Conecte n cuerdas con un costo mínimo

Hay n cuerdas de diferentes longitudes, necesitamos conectar estas cuerdas en una cuerda. El costo de conectar dos cuerdas es igual a la suma de sus longitudes. Necesitamos conectar las cuerdas con un costo mínimo. Por ejemplo, si nos dan 4 cuerdas de longitudes 4, 3, 2 y 6. Podemos conectar las cuerdas de las … Continue reading «Conecte n cuerdas con un costo mínimo»

Encuentra intervalos que no se superponen entre un conjunto dado de intervalos

Dado N conjunto de intervalos de tiempo, la tarea es encontrar los intervalos que no se superponen con el conjunto de intervalos dado. Ejemplos:   Entrada: intervalo arr[] = { {1, 3}, {2, 4}, {3, 5}, {7, 9} } Salida: [5, 7] Explicación: El único intervalo que  no  se  superpone  con los otros intervalos son [5, … Continue reading «Encuentra intervalos que no se superponen entre un conjunto dado de intervalos»

Tiempo Complejidad de construir un montón – Part 1

Considere el siguiente algoritmo para construir un Montón de una array de entrada A.  CONSTRUIR-MONTÓN (A)      heapsize := tamaño(A);      for i := floor(heapsize/2) downto 1          hacer HEAPIFY(A, i);      fin para  FINAL Una mirada rápida al algoritmo anterior sugiere que el tiempo de ejecución es   desde … Continue reading «Tiempo Complejidad de construir un montón – Part 1»