Estructura de Datos: Introducción a Listas Secuenciales con Guía Práctica

Estructura de Datos: Introducción a Listas Secuenciales con Guía Práctica 1. Conceptos Básicos de Estructuras de Datos Antes de profundizar en las listas secuenciales, es importante entender qué son las estructuras de datos. 1.1 ¿Qué son las Estructuras de Datos? Una estructura de datos combina "datos" y "estructura". Los da ...

Publicado el 8-17 05:42

Diccionarios en Python

Diccionarios Los diccionarios en Python presentan las siguientes características fundamentales: Acceso mediante claves en lugar de índices: Los diccionarios asocian valores a través de claves, permitiendo recuperar elementos utilizando dichas claves como identificadores Colección no ordenada de objetos diversos: A diferencia de las listas, los ...

Publicado el 8-13 16:37

Diseño de una cola con operación eficiente para obtener el máximo

Se requiere implementar una estructura de datos tipo cola que soporte tres operaciones: enqueue(v): inserta un valor al final de la cola. dequeue(): elimina y devuelve el elemento en el frente de la cola. max(): devuelve el valor máximo actual en la cola. El objetivo es minimizar la complejidad temporal de la operación max(), idealmente a O(1 ...

Publicado el 8-11 01:53

Análisis de intervalos consecutivos mediante estructuras de datos avanzadas

Transformación del problema El problema se puede reformular como: Determinar la centidad de subintervalos donde se cumple que Max - Min = r - l Solución por fuerza bruta Aprvoechando la propiedad anterior, podemos iterar todos los posibles intervalos y verificar si cumplen con la condición. #include <iostream> #include <cstdio> #inc ...

Publicado el 8-8 13:26

Conceptos y Operaciones de Listas Lineales en C

Definición de Lista Lineal Una lista lineal representa una colección finita y ordenada de $n$ elemantos ($n \geq 0$), denotada comúnmente como $(a_1, a_2, \dots, a_n)$. Esta estructura de datos se fundamenta en las siguientes propiedades lógicas: Cada componente de la lista, a excepción del primero y el último, posee un único predecesor y un ú ...

Publicado el 8-5 16:03

Problema estático de consultas en intervalos con árbol de Fenwick

Primer problema: Conteo de elementos distintos en un intervalo Dado un arreglo estático de números, se realizan múltiples consultas para determinar la cantidad de números distintos presentes en un intervalo [L, R]. La solución utiliza procesamiento offline, donde las consultas se ordenan por su límite derecho. Se mantiene un árbol de Fenwick (a ...

Publicado el 8-2 10:44

Ordenamiento por Burbuja: Un Algoritmo Fundamental de Ordenación

La versión simplificada del ordenamiento por cubetas no solo presenta los problemas mencionados en la sección anterior, sino que tiene un inconveniente aún más crítico: ¡consume una cantidad excesiva de espacio! Por ejemplo, si el rango de números a ordenar está entre 0 y 2,100,000,000, necesitarías declarar 2,100,000,001 variables, es decir, a ...

Publicado el 7-30 20:01

Concurso de Invitación de Xiangtan 2018

Enunciado: Se tiene un total de sum(a[i]) artículos, donde a[i] representa la cantidad de artículos que tienen exactamente i citas. Se debe encontrar el valor máximo h tal que al menos h artículos tengan cada uno al menos h citas. Enfoque: Utilizamos búsqueda binaria para determinar el valor óptimo de h. Es crucial interpretar correctamente la ...

Publicado el 7-22 20:28

Implementación de Generadores y Algoritmos Clásicos en Python

Python ofrece herramientas poderosas como generadores y capacidades recursivas que permiten resolver problemas algorítmicos de manera elegante. A continuación, se presentan diversas implementaciones prácticas de conceptos fundamentales de la ciencia de la computación utilizando este lenguaje. Recreando la función range con Generadores El uso de ...

Publicado el 7-19 07:00

Implementación de SDS: Cadenas Dinámicas en Redis

Archivos relacionados: sds.h sds.c Definición Tipos básicos de SDS typedef char* sds; SDS representa "Simple Dynamic String", o cadena dinámica simple. Estructuras de encabezado struct __attribute__ ((__packed__)) encabezado_sds8 { uint8_t longitud_uso; uint8_t capacidad_asignada; unsigned char tipo_info; char da ...

Publicado el 7-16 14:18