top of page
  • Foto del escritorMicaela Turrin

estructuras de datos

Aprenda qué son las estructuras de datos, por qué son útiles y cómo puede usarlas de manera efectiva.



¿Qué son incluso las estructuras de datos?

En la columna vertebral de cada programa o pieza de software hay dos entidades: datos y algoritmos. Los algoritmos transforman los datos en algo que un programa puede usar de manera efectiva. Por lo tanto, es importante comprender cómo estructurar los datos para que los algoritmos puedan mantener, utilizar e iterar los datos rápidamente.

Las estructuras de datos son la forma en que podemos almacenar y recuperar datos. Es posible que ya esté familiarizado con listas y diccionarios de Python o matrices y objetos de Javascript. Si es así, sabe que las listas y las matrices son secuenciales y se accede a los datos por índice, mientras que los diccionarios y los objetos usan una clave con nombre para almacenar y recuperar información. Las estructuras de datos que existen en los lenguajes de programación son bastante similares a los sistemas del mundo real que usamos fuera de la esfera digital. Imagina que vas al supermercado. En esta tienda de abarrotes en particular, la pizza congelada se almacena al lado de los pimientos y los cepillos de dientes están al lado de la leche. La tienda no tiene letreros que indiquen dónde se encuentran los diferentes artículos. ¡En esta tienda de abarrotes desorganizada, sería bastante difícil tratar de encontrar lo que estaba buscando! Afortunadamente, la mayoría de las tiendas de comestibles tienen un orden claro en cuanto a la forma en que se almacena y distribuye la tienda. Del mismo modo, las estructuras de datos nos brindan una forma de organizar la información (¡incluidas otras estructuras de datos!) en un espacio digital.




¿Cómo se utilizan las estructuras de datos?

Las estructuras de datos manejan cuatro funciones principales para nosotros:

  • Ingresando información

  • Procesando informacion

  • Mantenimiento de la información

  • Recuperación de información

La entrada se refiere en gran medida a cómo se reciben los datos. ¿Qué tipo de información se puede incluir? ¿Se agregarán los nuevos datos al principio, al final o en algún lugar en medio de los datos existentes? ¿Es necesario actualizar o destruir un punto de datos existente?

El procesamiento llega a la forma en que se manipulan los datos en la estructura de datos. Esto puede ocurrir simultáneamente o como resultado de otros procesos que manejan las estructuras de datos. ¿Cómo deben cambiar los datos existentes que se han almacenado para adaptarse a los datos nuevos, actualizados o eliminados?

El mantenimiento se centra en cómo se organizan los datos dentro de la estructura. ¿Qué relaciones deben mantenerse entre los datos? ¿Cuánta memoria debe reservar ( asignar ) el sistema para acomodar los datos? La recuperación se dedica a encontrar y devolver los datos almacenados en la estructura. ¿Cómo podemos acceder a esa información de nuevo? ¿Qué pasos debe seguir la estructura de datos para devolvernos la información?

Los diferentes tipos y casos de uso de datos se adaptarán mejor a las diferentes formas de ingreso, procesamiento, almacenamiento y recuperación. Es por eso que tenemos varias estructuras de datos para elegir... ¡y la capacidad de crear las nuestras!


Elegir la mejor estructura de datos

Su plomero probablemente no sea el mejor profesional para diagnosticar una enfermedad y su médico probablemente no sea la mejor persona para hacer sus impuestos: ¡cada uno de ellos es más adecuado para otras tareas! Del mismo modo, diferentes estructuras de datos son más adecuadas para diferentes tareas. Elegir la estructura de datos incorrecta puede resultar en un código lento o que no responde (¡y estropear su programa!), por lo que es importante considerar algunos factores al tomar su decisión:

  1. ¿Cuál es el propósito previsto para los datos? ¿Alguna estructura de datos tiene una funcionalidad integrada que sea ideal para este propósito? ¿Desea buscar, ordenar o iterar datos de una manera en la que ciertas estructuras de datos se adapten mejor que otras?

  2. ¿Quiere o necesita controlar cómo se reserva la memoria para almacenar sus datos? Las estructuras de datos que utilizan la asignación de memoria estática (p. ej., pilas o arreglos) administrarán la memoria por usted y asumirán una cantidad fija de memoria en la creación de instancias con un límite en la cantidad de datos que se pueden agregar. Las estructuras de datos que utilizan la asignación de memoria dinámica (p. ej., montones o listas vinculadas) le permiten asignar y reasignar memoria durante la vida del programa. Si bien la asignación de memoria no es algo que deba considerar en lenguajes como Python o Javascript (estos lenguajes administrarán la memoria por usted, independientemente de la estructura de datos que use), es algo a tener en cuenta cuando se trabaja en otros lenguajes como C.

  3. ¿Cuánto tardarán diferentes estructuras de datos en realizar varias tareas en relación con otras estructuras de datos? Técnicamente, dos estructuras de datos pueden realizar la misma tarea por usted, pero una puede ser un poco más rápida. Esta consideración, conocida como tiempo de ejecución , se cubrirá con mayor profundidad cuando explore todos los ingeniosos trucos de la notación asintótica.

Como ha visto, las estructuras de datos son los componentes esenciales que utilizamos para organizar toda nuestra información digital. Elegir la estructura de datos correcta nos permite usar los algoritmos que queremos y mantiene nuestro código funcionando sin problemas. Comprender las estructuras de datos y cómo usarlas bien puede desempeñar un papel vital en muchas situaciones, entre ellas:

  • entrevistas técnicas en las que se le puede pedir que evalúe y determine el tiempo de ejecución de las estructuras de datos dados algoritmos específicos

  • trabajo diario para muchos ingenieros de software que manipulan datos almacenados en estructuras

  • trabajo de ciencia de datos donde los datos se almacenan y se accede a ellos a través de estructuras de datos

  • ¡mucho más!


Y vos, ¿por donde arrancás?


Leé más en camonlabs.com/blog




bottom of page