Aunque las computadoras pueden realizar literalmente millones de cálculos matemáticos por segundo, cuando un problema se vuelve grande y complicado, el rendimiento puede ser una consideración importante. Uno de los aspectos más cruciales para la rapidez con que se puede resolver un problema es cómo se almacenan los datos en la memoria.
Para ilustrar este punto, considere ir a la biblioteca local para encontrar un libro sobre un tema específico. Lo más probable es que pueda utilizar algún tipo de referencia electrónica o, en el peor de los casos, un catálogo de tarjetas, para determinar el título y el autor del libro que desea. Dado que los libros generalmente están archivados por categoría, y dentro de cada categoría ordenada por el nombre del autor, es un proceso bastante sencillo e indoloro seleccionar físicamente su libro de los estantes.
Ahora, supongamos que en lugar de eso viniste a la biblioteca en busca de un libro en particular, pero en lugar de estantes organizados, te saludaron con grandes bolsas de basura que se alineaban a ambos lados de la habitación, cada una llena arbitrariamente de libros que pueden o no tener algo que ver con unos y otros. Tomaría horas, o incluso días, encontrar el libro que necesitabas, una eternidad comparativa. Así es como se ejecuta el software cuando los datos no se almacenan en un formato eficiente apropiado para la aplicación.
- ¿Qué es un algoritmo increíble que encontraste?
- ¿Somos solo un algoritmo?
- ¿Cuáles son los buenos canales en YouTube para aprender algoritmos y estructuras de datos para la preparación de Google Code Jam o Facebook Hacker Cup?
- Cómo verificar en C ++ si varias cadenas tienen una coincidencia con una sola cadena de una sola vez
- ¿Cómo se crean los algoritmos y para qué se utilizan?
En ciencias de la computación, una estructura de datos es una forma particular de organizar los datos en una computadora para que puedan usarse de manera eficiente. Las estructuras de datos pueden implementar uno o más tipos de datos abstractos particulares (ADT), que especifican las operaciones que se pueden realizar en una estructura de datos y la complejidad computacional de esas operaciones. En comparación, una estructura de datos es una implementación concreta de la especificación proporcionada por un ADT.
Las estructuras de datos proporcionan un medio para administrar grandes cantidades de datos de manera eficiente para usos tales como grandes bases de datos y servicios de indexación de Internet. Por lo general, las estructuras de datos eficientes son clave para diseñar algoritmos eficientes. Algunos métodos de diseño formales y lenguajes de programación enfatizan las estructuras de datos, en lugar de los algoritmos, como el factor clave de organización en el diseño de software. Las estructuras de datos se pueden usar para organizar el almacenamiento y la recuperación de la información almacenada tanto en la memoria principal como en la memoria secundaria.
Las estructuras de datos generalmente se basan en la capacidad de una computadora para obtener y almacenar datos en cualquier lugar de su memoria, especificada por un puntero, una cadena de bits, que representa una dirección de memoria, que puede ser almacenada en la memoria y manipulada por el programa. Por lo tanto, la matriz y las estructuras de datos de registro se basan en el cálculo de las direcciones de los elementos de datos con operaciones aritméticas; mientras que las estructuras de datos vinculadas se basan en el almacenamiento de direcciones de elementos de datos dentro de la estructura misma. Muchas estructuras de datos utilizan ambos principios, a veces combinados de manera no trivial (como en el enlace XOR).
La implementación de una estructura de datos generalmente requiere escribir un conjunto de procedimientos que crean y manipulan instancias de esa estructura. La eficiencia de una estructura de datos no se puede analizar por separado de esas operaciones. Esta observación motiva el concepto teórico de un tipo de datos abstractos, una estructura de datos que se define indirectamente por las operaciones que se pueden realizar en él, y las propiedades matemáticas de esas operaciones (incluido su costo de espacio y tiempo).
Enlaces:
- Estructuras de datos – topcoder
- Estructura de datos
- Conceptos básicos de estructuras de datos
- Introducción a las estructuras de datos
- Introducción a estructuras y algoritmos de datos básicos y avanzados
Fuente:
- Estructuras de datos – topcoder
- Estructura de datos